REXML::Parsers::LightParser (Class)

In: rexml/parsers/lightparser.rb
Parent: Object

Methods

new   parse   rewind  

Public Class methods

[Source]

# File rexml/parsers/lightparser.rb, line 8
                        def initialize stream
                                @stream = stream
                                @parser = REXML::Parsers::BaseParser.new( stream )
                        end

Public Instance methods

[Source]

# File rexml/parsers/lightparser.rb, line 18
                        def parse
                                root = context = [ :document ]
                                while true
                                        event = @parser.pull
                                        case event[0]
                                        when :end_document
                                                break
                                        when :end_doctype
                                                context = context[1]
                                        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

[Source]

# File rexml/parsers/lightparser.rb, line 13
      def rewind
        @stream.rewind
        @parser.stream = @stream
      end

[Validate]