模块 REXML::StreamListener

流解析器监听器的模板。请注意,声明(attlistdecl、elementdecl 等)的处理非常简单; REXML 尚未处理 doctype 实体声明,因此您必须自己解析它们。

公共实例方法

attlistdecl(element_name, attributes, raw_content) 点击以切换源代码

如果 doctype 包含 ATTLIST 声明,将导致调用此方法。内容是声明本身,未经解析。例如, <!ATTLIST el attr CDATA REQUIRED> 将以“el attr CDATA REQUIRED”的形式传递给此方法。所有 .*decl 方法都是如此。

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 51
def attlistdecl element_name, attributes, raw_content
end
cdata(content) 点击以切换源代码

当在文档中遇到 <![CDATA[ … ]]> 时调用。 @p content “…”

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 83
def cdata content
end
comment(comment) 点击以切换源代码

当遇到注释时调用。 @p comment 注释的内容

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 33
def comment comment
end
doctype(name, pub_sys, long_name, uri) 点击以切换源代码

处理 doctype 声明。doctype 的任何未提供的属性都将为 nil。 例如,<!DOCTYPE me PUBLIC “foo” “bar”> @p name doctype 的名称;例如,“me” @p pub_sys “PUBLIC”、“SYSTEM”或 nil。例如,“PUBLIC” @p long_name 提供的长名称,或 nil。例如,“foo” @p uri doctype 的 uri,或 nil。例如,“bar”

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 41
def doctype name, pub_sys, long_name, uri
end
doctype_end() 点击以切换源代码

当 doctype 完成时调用

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 44
def doctype_end
end
elementdecl(content) 点击以切换源代码

<!ELEMENT …>

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 54
def elementdecl content
end
entity(content) 点击以切换源代码

当在 doctype 声明中遇到 %foo; 时调用。 @p content “foo”

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 79
def entity content
end
entitydecl(content) 点击以切换源代码

<!ENTITY …> 传递给此方法的参数是实体声明的数组。它可以有多种格式,但通常会返回 (示例,结果)

<!ENTITY % YN '"Yes"'>
["YN", "\"Yes\"", "%"]
<!ENTITY % YN 'Yes'>
["YN", "Yes", "%"]
<!ENTITY WhatHeSaid "He said %YN;">
["WhatHeSaid", "He said %YN;"]
<!ENTITY open-hatch SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
["open-hatch", "SYSTEM", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
<!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "http://www.textuality.com/boilerplate/OpenHatch.xml">
["open-hatch", "PUBLIC", "-//Textuality//TEXT Standard open-hatch boilerplate//EN", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
<!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif>
["hatch-pic", "SYSTEM", "../grafix/OpenHatch.gif", "gif"]
# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 72
def entitydecl content
end
instruction(name, instruction) 点击以切换源代码

当遇到指令时调用。 例如: <?xsl sheet=‘foo’?> @p name 指令的名称;在示例中,“xsl” @p instruction 指令的其余部分。在示例中,“sheet=‘foo’”

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 29
def instruction name, instruction
end
notationdecl(content) 点击以切换源代码

<!NOTATION …>

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 75
def notationdecl content
end
tag_end(name) 点击以切换源代码

当到达结束标记时调用。对于 <tag/>,tag_end 将在 tag_start 之后立即调用 @p 标记的名称

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 19
def tag_end name
end
tag_start(name, attrs) 点击以切换源代码

当遇到标记时调用。 @p name 标记名称 @p attrs 属性/值对的数组数组,适合与 assoc 或 rassoc 一起使用。即,<tag attr1=“value1” attr2=“value2”> 将导致 tag_start( “tag”, # [[“attr1”,“value1”],])

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 14
def tag_start name, attrs
end
text(text) 点击以切换源代码

当在文档中遇到文本时调用 @p text 文本内容。

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 23
def text text
end
xmldecl(version, encoding, standalone) 点击以切换源代码

当在文档中遇到 XML PI 时调用。 例如:<?xml version=“1.0” encoding=“utf”?> @p version version 属性值。 例如,“1.0” @p encoding encoding 属性值,或 nil。例如,“utf” @p standalone standalone 属性值,或 nil。例如,nil

# File rexml-3.4.0/lib/rexml/streamlistener.rb, line 90
def xmldecl version, encoding, standalone
end