Class: REXML::Parsers::StreamParser

Class | REXML::Parsers::StreamParser
In: | rexml/parsers/streamparser.rb
Parent: | Object

### Methods

add_listener new parse

### Public Class methods

new(source, listener)

[Source]

    # File rexml/parsers/streamparser.rb, line 4
                            def initialize source, listener
                                    @listener = listener
                                    @parser = BaseParser.new( source )
                            end

### Public Instance methods

add_listener( listener )

[Source]

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

parse()

[Source]

    # File rexml/parsers/streamparser.rb, line 13
                            def parse
                                    # entity string
                                    while true
                                            event = @parser.pull
                                            case event[0]
                                            when :end_document
                                                    return
                                            when :start_element
                                                    attrs = event[2].each do |n, v|
                                                            event[2][n] = @parser.unnormalize( v )
                                                    end
                                                    @listener.tag_start( event[1], attrs )
                                            when :end_element
                                                    @listener.tag_end( event[1] )
                                            when :text
                                                    normalized = @parser.unnormalize( event[1] )
                                                    @listener.text( normalized )
                                            when :processing_instruction
                                                    @listener.instruction( *event[1,2] )
              when :start_doctype
                @listener.doctype( *event[1..-1] )
                                            when :comment, :attlistdecl, :notationdecl, :elementdecl,
                :entitydecl, :cdata, :xmldecl, :attlistdecl
                                                    @listener.send( event[0].to_s, *event[1..-1] )
                                            end
                                    end
                            end

[Validate]