D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
thread-self
/
root
/
usr
/
share
/
ruby
/
rexml
/
parsers
/
Filename :
ultralightparser.rb
back
Copy
# frozen_string_literal: false require 'rexml/parsers/streamparser' require 'rexml/parsers/baseparser' module REXML module Parsers class UltraLightParser def initialize stream @stream = stream @parser = REXML::Parsers::BaseParser.new( stream ) end def add_listener( listener ) @parser.add_listener( listener ) end def rewind @stream.rewind @parser.stream = @stream end def parse root = context = [] while true event = @parser.pull case event[0] when :end_document break when :end_doctype context = context[1] when :start_element, :start_doctype context << event event[1,0] = [context] context = event when :end_element context = context[1] else context << event end end root end end # An element is an array. The array contains: # 0 The parent element # 1 The tag name # 2 A hash of attributes # 3..-1 The child elements # An element is an array of size > 3 # Text is a String # PIs are [ :processing_instruction, target, data ] # Comments are [ :comment, data ] # DocTypes are DocType structs # The root is an array with XMLDecls, Text, DocType, Array, Text end end
Name
Size
Last Modified
Owner
Permissions
Actions
baseparser.rb
26.196
KB
December 06 2024 2:22:57
root
0644
lightparser.rb
1.546
KB
April 05 2021 11:46:35
root
0644
pullparser.rb
5.114
KB
April 05 2021 11:46:35
root
0644
sax2parser.rb
9.067
KB
April 05 2021 11:46:35
root
0644
streamparser.rb
1.926
KB
April 05 2021 11:46:35
root
0644
treeparser.rb
3.482
KB
April 05 2021 11:46:35
root
0644
ultralightparser.rb
1.454
KB
April 05 2021 11:46:35
root
0644
xpathparser.rb
17.934
KB
April 05 2021 11:46:35
root
0644
2017 © D7net | D704T team