OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
ruby
/
2.5.0
/
rexml
/
parsers
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
baseparser.rb
25.61 KB
05/15/2023 11:41:43 AM
rw-r--r--
📄
lightparser.rb
1.55 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
pullparser.rb
5.11 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
sax2parser.rb
9.07 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
streamparser.rb
1.93 KB
06/07/2017 01:01:28 PM
rw-r--r--
📄
treeparser.rb
3.48 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
ultralightparser.rb
1.45 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
xpathparser.rb
17.93 KB
12/16/2015 05:07:31 AM
rw-r--r--
Editing: lightparser.rb
Close
# frozen_string_literal: false require 'rexml/parsers/streamparser' require 'rexml/parsers/baseparser' require 'rexml/light/node' module REXML module Parsers class LightParser 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 = [ :document ] while true event = @parser.pull case event[0] when :end_document break when :start_element, :start_doctype new_node = event context << new_node new_node[1,0] = [context] context = new_node when :end_element, :end_doctype context = context[1] else new_node = event context << new_node new_node[1,0] = [context] 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