| MyoPyx A PYX document parser. Author: Sean
Russell <ser@germane-software.com> Version: 1.0
Still to do:
* Add support for listening for multiple tags with one
addListener() call.</li>
| listeners |
[RW] |
|
| pi_listeners |
[RW] |
|
Module MyoPyx::DummyListener
Parses a Reader stream, generating events that are sent to MyoPyx.Listeners that are added with addListener()
or addPIListener().
p = MyoPyx.new()
p.addListener( my_listener )
input = File.new( "my.pyx" )
p.parse( input )
An exception is raised if there is a problem reading from the reader, or if
there is a parsing problem. If there is a parsing exception, such as bad
markup or bad document formatting, the error message will contnain the line
number where the error occurred.
Add a listener for parsing events. The listener must define the methods:
* start_element( name, attrs ) # name isa String, attrs isa {}
* end_element( name ) # name isa String
* text( content ) # content isa String
class MyTagListener
include MyoPyx::DummyListener
def start_element( name, attrs )
puts "MyTag has attributes:"
attrs.each_pair { |key, value| puts "\t#{key} -> #{value}" }
end
class AllListener
include MyoPyx::DummyListener
def start_element( name, attrs )
puts "Got tag #{name}"
end
end
pyx.addListener( AllListener.new );
pyx.addListener( MyTagListener.new, "MyTag" )
Listeners for all events will be notified before listeners of specific
events. After this, Listeners are notified in the order they are added.
If tag_name is null, the listener will be notified of all events. If it is
not null, the listener will be notified of only events pertaining to
elements matching the tag_name.
Removes a listener. The tag must match the tag under which the listener was
added; for example, if a listener is added as both a "MyTag1" and
"MyTag2", then remove_listener(listener) will do nothing,
and remove_listener(listener,
"MyTag1") will only remove the listener for events on
"MyTag1", not "MyTag2".
Attaches a listener of processing instruction (PI) events. The listener
must define a pi( text ) method, which will be called when a processing
instruction is encountered; the text will be the body of the processing
instruction
|