PHP 8.2.31
Preview: ultralightparser.rb Size: 1.42 KB
/proc/thread-self/root/opt/alt/ruby19/lib64/ruby/1.9.1/rexml/parsers/ultralightparser.rb

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, :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

Directory Contents

Dirs: 0 × Files: 8

Name Size Perms Modified Actions
18.99 KB lrw-r--r-- 2013-02-06 13:03:59
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
8.58 KB lrw-r--r-- 2011-05-19 00:07:25
Edit Download
1.38 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download
3.48 KB lrw-r--r-- 2009-10-02 10:45:39
Edit Download
1.42 KB lrw-r--r-- 2011-05-19 00:07:25
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).