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 rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 107
def initialize(arg)
  @contents = arg
end

Public Instance Methods

[]( start, endd=nil) click to toggle source
# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 111
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 rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 160
def attlistdecl?
  @contents[0] == :attlistdecl
end
cdata?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 191
def cdata?
  @contents[0] == :cdata
end
comment?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 150
def comment?
  @contents[0] == :comment
end
doctype?() click to toggle source

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

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 155
def doctype?
  @contents[0] == :start_doctype
end
elementdecl?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 165
def elementdecl?
  @contents[0] == :elementdecl
end
end_element?() click to toggle source

Content: [ String tag_name ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 135
def end_element?
  @contents[0] == :end_element
end
entity?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 186
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 rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 176
def entitydecl?
  @contents[0] == :entitydecl
end
error?() click to toggle source
# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 200
def error?
  @contents[0] == :error
end
event_type() click to toggle source
# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 125
def event_type
  @contents[0]
end
inspect() click to toggle source
# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 204
def inspect
  @contents[0].to_s + ": " + @contents[1..-1].inspect
end
instruction?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 145
def instruction?
  @contents[0] == :processing_instruction
end
notationdecl?() click to toggle source

Content: [ String text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 181
def notationdecl?
  @contents[0] == :notationdecl
end
start_element?() click to toggle source

Content: [ String tag_name, Hash attributes ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 130
def start_element?
  @contents[0] == :start_element
end
text?() click to toggle source

Content: [ String raw_text, String unnormalized_text ]

# File rexml-3.3.8/lib/rexml/parsers/pullparser.rb, line 140
def text?
  @contents[0] == :text
end
xmldecl?() click to toggle source

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

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