PHP 8.2.31
Preview: lightparser.rb Size: 1.52 KB
//proc/thread-self/root/opt/alt/ruby21/lib64/ruby/2.1.0/rexml/parsers/lightparser.rb

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

Directory Contents

Dirs: 0 × Files: 8

Name Size Perms Modified Actions
19.65 KB lrw-r--r-- 2013-08-11 09:08:21
Edit Download
1.52 KB lrw-r--r-- 2011-05-19 00:07:25
Edit Download
5.08 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download
9.27 KB lrw-r--r-- 2013-08-11 09:42:37
Edit Download
1.58 KB lrw-r--r-- 2013-10-31 12:50:49
Edit Download
3.45 KB lrw-r--r-- 2013-09-03 14:01:20
Edit Download
1.42 KB lrw-r--r-- 2013-11-16 09:31:24
Edit Download
19.39 KB lrw-r--r-- 2011-06-11 07:05:42
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).