In Files

  • rexml/streamlistener.rb

Class/Module Index [+]



A template for stream parser listeners. Note that the declarations (attlistdecl, elementdecl, etc) are trivially processed; REXML doesn’t yet handle doctype entity declarations, so you have to parse them out yourself.

Public Instance Methods

attlistdecl(element_name, attributes, raw_content) click to toggle source

If a doctype includes an ATTLIST declaration, it will cause this method to be called. The content is the declaration itself, unparsed. EG, <!ATTLIST el attr CDATA #REQUIRED> will come to this method as “el attr CDATA #REQUIRED”. This is the same for all of the .*decl methods.

               # File rexml/streamlistener.rb, line 50
def attlistdecl element_name, attributes, raw_content
cdata(content) click to toggle source

Called when <![CDATA[ … ]]> is encountered in a document. @p content “…”

               # File rexml/streamlistener.rb, line 82
def cdata content
comment(comment) click to toggle source

Called when a comment is encountered. @p comment The content of the comment

               # File rexml/streamlistener.rb, line 32
def comment comment
doctype(name, pub_sys, long_name, uri) click to toggle source

Handles a doctype declaration. Any attributes of the doctype which are not supplied will be nil. # EG, <!DOCTYPE me PUBLIC “foo” “bar”> @p name the name of the doctype; EG, “me” @p pub_sys “PUBLIC”, “SYSTEM”, or nil. EG, “PUBLIC” @p long_name the supplied long name, or nil. EG, “foo” @p uri the uri of the doctype, or nil. EG, “bar”

               # File rexml/streamlistener.rb, line 40
def doctype name, pub_sys, long_name, uri
doctype_end() click to toggle source

Called when the doctype is done

               # File rexml/streamlistener.rb, line 43
def doctype_end
elementdecl(content) click to toggle source


               # File rexml/streamlistener.rb, line 53
def elementdecl content
entity(content) click to toggle source

Called when %foo; is encountered in a doctype declaration. @p content “foo”

               # File rexml/streamlistener.rb, line 78
def entity content
entitydecl(content) click to toggle source

<!ENTITY …> The argument passed to this method is an array of the entity declaration. It can be in a number of formats, but in general it returns (example, result):

<!ENTITY % YN '"Yes"'>  
["%", "YN", "'\"Yes\"'", "\""]
<!ENTITY % YN 'Yes'>
["%", "YN", "'Yes'", "s"]
<!ENTITY WhatHeSaid "He said %YN;">
["WhatHeSaid", "\"He said %YN;\"", "YN"]
<!ENTITY open-hatch SYSTEM "">
["open-hatch", "SYSTEM", "\"\""]
<!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "">
["open-hatch", "PUBLIC", "\"-//Textuality//TEXT Standard open-hatch boilerplate//EN\"", "\"\""]
<!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif>
["hatch-pic", "SYSTEM", "\"../grafix/OpenHatch.gif\"", "\n\t\t\t\t\t\t\tNDATA gif", "gif"]
               # File rexml/streamlistener.rb, line 71
def entitydecl content
instruction(name, instruction) click to toggle source

Called when an instruction is encountered. EG: <?xsl sheet=‘foo’?> @p name the instruction name; in the example, “xsl” @p instruction the rest of the instruction. In the example, “sheet=‘foo’”

               # File rexml/streamlistener.rb, line 28
def instruction name, instruction
notationdecl(content) click to toggle source


               # File rexml/streamlistener.rb, line 74
def notationdecl content
tag_end(name) click to toggle source

Called when the end tag is reached. In the case of <tag/>, #tag_end will be called immidiately after #tag_start @p the name of the tag

               # File rexml/streamlistener.rb, line 18
def tag_end name
tag_start(name, attrs) click to toggle source

Called when a tag is encountered. @p name the tag name @p attrs an array of arrays of attribute/value pairs, suitable for use with assoc or rassoc. IE, <tag attr1=“value1” attr2=“value2”> will result in #tag_start( “tag”, # [[“attr1”,“value1”],])

               # File rexml/streamlistener.rb, line 13
def tag_start name, attrs
text(text) click to toggle source

Called when text is encountered in the document @p text the text content.

               # File rexml/streamlistener.rb, line 22
def text text
xmldecl(version, encoding, standalone) click to toggle source

Called when an XML PI is encountered in the document. EG: <?xml version=“1.0” encoding=“utf”?> @p version the version attribute value. EG, “1.0” @p encoding the encoding attribute value, or nil. EG, “utf” @p standalone the standalone attribute value, or nil. EG, nil

               # File rexml/streamlistener.rb, line 89
def xmldecl version, encoding, standalone

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit