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.
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 95
def initialize(arg)
@contents = arg
end
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 tmp/rubies/ruby-2.3.8/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
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 148
def attlistdecl?
@contents[0] == :attlistdecl
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 179
def cdata?
@contents[0] == :cdata
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 138
def comment?
@contents[0] == :comment
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 143
def doctype?
@contents[0] == :start_doctype
end
Content: [ String name, String pub_sys, String long_name, String uri ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 153
def elementdecl?
@contents[0] == :elementdecl
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 123
def end_element?
@contents[0] == :end_element
end
Content: [ String tag_name ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 174
def entity?
@contents[0] == :entity
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 164
def entitydecl?
@contents[0] == :entitydecl
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 tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 188
def error?
@contents[0] == :error
end
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 113
def event_type
@contents[0]
end
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 192
def inspect
@contents[0].to_s + ": " + @contents[1..-1].inspect
end
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 133
def instruction?
@contents[0] == :processing_instruction
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 169
def notationdecl?
@contents[0] == :notationdecl
end
Content: [ String text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 118
def start_element?
@contents[0] == :start_element
end
Content: [ String tag_name, Hash
attributes ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 128
def text?
@contents[0] == :text
end
Content: [ String raw_text, String unnormalized_text ]
# File tmp/rubies/ruby-2.3.8/lib/rexml/parsers/pullparser.rb, line 184
def xmldecl?
@contents[0] == :xmldecl
end
Content: [ String version, String encoding, String standalone ]