Class: REXML::Parsers::LightParser

Class | REXML::Parsers::LightParser
In: | rexml/parsers/lightparser.rb
Parent: | Object

### Methods

add_listener new parse rewind

### Public Class methods

new(stream)

[Source]

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

### Public Instance methods

add_listener( listener )

[Source]

    # File rexml/parsers/lightparser.rb, line 13
          def add_listener( listener )
            @parser.add_listener( listener )
          end

parse()

[Source]

    # File rexml/parsers/lightparser.rb, line 22
                            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

rewind()

[Source]

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

[Validate]