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.
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/parsers/pullparser.rb, line 94
def initialize(arg)
@contents = arg
end
# File rexml/parsers/pullparser.rb, line 98
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
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 147
def attlistdecl?
@contents[0] == :attlistdecl
end
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 178
def cdata?
@contents[0] == :cdata
end
Content: [ String name, String pub_sys, String long_name, String uri ]
# File rexml/parsers/pullparser.rb, line 142
def doctype?
@contents[0] == :start_doctype
end
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 152
def elementdecl?
@contents[0] == :elementdecl
end
Content: [ String tag_name ]
# File rexml/parsers/pullparser.rb, line 122
def end_element?
@contents[0] == :end_element
end
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 173
def entity?
@contents[0] == :entity
end
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:
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 163
def entitydecl?
@contents[0] == :entitydecl
end
# File rexml/parsers/pullparser.rb, line 187
def error?
@contents[0] == :error
end
# File rexml/parsers/pullparser.rb, line 112
def event_type
@contents[0]
end
# File rexml/parsers/pullparser.rb, line 191
def inspect
@contents[0].to_s + ": " + @contents[1..-1].inspect
end
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 132
def instruction?
@contents[0] == :processing_instruction
end
Content: [ String text ]
# File rexml/parsers/pullparser.rb, line 168
def notationdecl?
@contents[0] == :notationdecl
end
Content: [ String tag_name, Hash attributes ]
# File rexml/parsers/pullparser.rb, line 117
def start_element?
@contents[0] == :start_element
end
Content: [ String text ]