# class REXML::Parsers::PullEvent

A parsing event. The contents of the event are accessed as an +Array?, and the type is given either by the …? methods, or by accessing the `type` accessor. The contents of this object vary from event to event, but are identical to the arguments passed to +StreamListener+s for each event.

### Public Class Methods

new(arg) click to toggle source

The type of this event. Will be one of :tag_start, :tag_end, :text, :processing_instruction, :comment, :doctype, :attlistdecl, :entitydecl, :notationdecl, :entity, :cdata, :xmldecl, or :error.

    # File lib/rexml/parsers/pullparser.rb, line 95
    def initialize(arg)
      @contents = arg
    end

### Public Instance Methods

[]( start, endd=nil) click to toggle source

    # File lib/rexml/parsers/pullparser.rb, line 99
    def []( start, endd=nil)
      if start.kind_of? Range
        @contents.slice( start.begin+1 .. start.end )
      elsif start.kind_of? Numeric
        if endd.nil?
          @contents.slice( start+1 )
        else
          @contents.slice( start+1, endd )
        end
      else
        raise "Illegal argument #{start.inspect} (#{start.class})"
      end
    end

attlistdecl?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 148
    def attlistdecl?
      @contents[0] == :attlistdecl
    end

cdata?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 179
    def cdata?
      @contents[0] == :cdata
    end

comment?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 138
    def comment?
      @contents[0] == :comment
    end

doctype?() click to toggle source

Content: [ `String` name, `String` pub_sys, `String` long_name, `String` uri ]

    # File lib/rexml/parsers/pullparser.rb, line 143
    def doctype?
      @contents[0] == :start_doctype
    end

elementdecl?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 153
    def elementdecl?
      @contents[0] == :elementdecl
    end

end_element?() click to toggle source

Content: [ `String` tag_name ]

    # File lib/rexml/parsers/pullparser.rb, line 123
    def end_element?
      @contents[0] == :end_element
    end

entity?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 174
    def entity?
      @contents[0] == :entity
    end

entitydecl?() click to toggle source

Due to the wonders of DTDs, an entity declaration can be just about anything. There's no way to normalize it; you'll have to interpret the content yourself. However, the following is true:

- If the entity declaration is an internal entity:

  `String` name, `String` value

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 164
    def entitydecl?
      @contents[0] == :entitydecl
    end

error?() click to toggle source

    # File lib/rexml/parsers/pullparser.rb, line 188
    def error?
      @contents[0] == :error
    end

event_type() click to toggle source

    # File lib/rexml/parsers/pullparser.rb, line 113
    def event_type
      @contents[0]
    end

inspect() click to toggle source

    # File lib/rexml/parsers/pullparser.rb, line 192
    def inspect
      @contents[0].to_s + ": " + @contents[1..-1].inspect
    end

instruction?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 133
    def instruction?
      @contents[0] == :processing_instruction
    end

notationdecl?() click to toggle source

Content: [ `String` text ]

    # File lib/rexml/parsers/pullparser.rb, line 169
    def notationdecl?
      @contents[0] == :notationdecl
    end

start_element?() click to toggle source

Content: [ `String` tag_name, `Hash` attributes ]

    # File lib/rexml/parsers/pullparser.rb, line 118
    def start_element?
      @contents[0] == :start_element
    end

text?() click to toggle source

Content: [ `String` raw_text, `String` unnormalized_text ]

    # File lib/rexml/parsers/pullparser.rb, line 128
    def text?
      @contents[0] == :text
    end

xmldecl?() click to toggle source

Content: [ `String` version, `String` encoding, `String` standalone ]

    # File lib/rexml/parsers/pullparser.rb, line 184
    def xmldecl?
      @contents[0] == :xmldecl
    end