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
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 107 def initialize(arg) @contents = arg end
Public Instance Methods
# File 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
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 160 def attlistdecl? @contents[0] == :attlistdecl end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 191 def cdata? @contents[0] == :cdata end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 150 def comment? @contents[0] == :comment end
Content: [ String name, String pub_sys, String long_name, String uri ]
# File lib/rexml/parsers/pullparser.rb, line 155 def doctype? @contents[0] == :start_doctype end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 165 def elementdecl? @contents[0] == :elementdecl end
Content: [ String tag_name ]
# File lib/rexml/parsers/pullparser.rb, line 135 def end_element? @contents[0] == :end_element end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 186 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:
- String name, String value
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 176 def entitydecl? @contents[0] == :entitydecl end
# File lib/rexml/parsers/pullparser.rb, line 200 def error? @contents[0] == :error end
# File lib/rexml/parsers/pullparser.rb, line 125 def event_type @contents[0] end
# File lib/rexml/parsers/pullparser.rb, line 204 def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 145 def instruction? @contents[0] == :processing_instruction end
Content: [ String text ]
# File lib/rexml/parsers/pullparser.rb, line 181 def notationdecl? @contents[0] == :notationdecl end
Content: [ String tag_name, Hash attributes ]
# File lib/rexml/parsers/pullparser.rb, line 130 def start_element? @contents[0] == :start_element end
Content: [ String raw_text, String unnormalized_text ]
# File lib/rexml/parsers/pullparser.rb, line 140 def text? @contents[0] == :text end
Content: [ String version, String encoding, String standalone ]
# File lib/rexml/parsers/pullparser.rb, line 196 def xmldecl? @contents[0] == :xmldecl end