模块 REXML::SAX2Listener

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

SAX2 中缺少的方法

ignorable_whitespace

扩展 SAX2 的方法

警告 这些方法肯定会发生变化,直到完全支持 DTD。请注意这一点。

start_document
end_document
doctype
elementdecl
attlistdecl
entitydecl
notationdecl
cdata
xmldecl
comment

公共实例方法

attlistdecl(element, pairs, contents) 点击切换源码

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

# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 53
def attlistdecl(element, pairs, contents)
end
cdata(content) 点击切换源码

在文档中遇到 时调用。 @p content “…”

# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 81
def cdata content
end
characters(text) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 36
def characters text
end
comment(comment) 点击切换源码

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

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

处理 doctype 声明。任何未提供的 doctype 属性都将为 nil。 # 例如, @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/sax2listener.rb, line 46
def doctype name, pub_sys, long_name, uri
end
elementdecl(content) 点击切换源码

# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 56
def elementdecl content
end
end_document() 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 26
def end_document
end
end_element(uri, localname, qname) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 34
def end_element uri, localname, qname
end
end_prefix_mapping(prefix) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 30
def end_prefix_mapping prefix
end
entitydecl(declaration) 点击切换源码

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

<!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”,“www.textuality.com/boilerplate/OpenHatch.xml

“hatch-pic”,“SYSTEM”,“../grafix/OpenHatch.gif”,“NDATA”,“gif”
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 74
def entitydecl declaration
end
notationdecl(name, public_or_system, public_id, system_id) 点击切换源码

# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 77
def notationdecl name, public_or_system, public_id, system_id
end
processing_instruction(target, data) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 38
def processing_instruction target, data
end
progress(position) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 95
def progress position
end
start_document() 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 24
def start_document
end
start_element(uri, localname, qname, attributes) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 32
def start_element uri, localname, qname, attributes
end
start_prefix_mapping(prefix, uri) 点击切换源码
# File rexml-3.4.0/lib/rexml/sax2listener.rb, line 28
def start_prefix_mapping prefix, uri
end
xmldecl(version, encoding, standalone) 点击切换源码

当在文档中遇到 XML PI 时调用。 例如: @p version version 属性值。例如,“1.0” @p encoding encoding 属性值,或 nil。 例如,“utf” @p standalone standalone 属性值,或 nil。 例如,nil @p spaced 声明后跟换行符

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