19.13. xml.sax.saxutils — SAXUtil

2.0 版中的新Function。

模块xml.sax.saxutils包含许多类和函数,这些类和函数在直接或作为 Base Class 创建 SAX 应用程序时通常非常有用。

  • xml.sax.saxutils. escape(* data * [,* entities *])
    • 将一串数据转义'&''<''>'

您可以pass传递字典作为可选的* entities 参数来转义其他数据字符串。键和值都必须是字符串;每个键将替换为其对应的值。即使提供了 entity *,字符'&''<''>'也会始终转义。

  • xml.sax.saxutils. unescape(* data * [,* entities *])
    • 将一串数据中的'&amp;''&lt;''&gt;'转义。

您可以pass传递字典作为可选的* entities 参数来取消转义其他数据字符串。键和值都必须是字符串;每个键将替换为其对应的值。即使提供了 entity *,'&amp''&lt;''&gt;'也始终未转义。

2.3 版的新Function。

  • xml.sax.saxutils. quoteattr(* data * [,* entities *])
    • escape()相似,但也准备* data 用作属性值。返回值是 data 的带引号的版本,带有任何其他必需的替代项。 quoteattr()将基于 data 的内容选择一个引号字符,try避免对字符串中的任何引号字符进行编码。如果单引号和双引号字符都已经在 data 中,则将对双引号字符进行编码,并且 data *将被包装在双引号中。结果字符串可以直接用作属性值:
>>> print "<element attr=%s>" % quoteattr("ab ' cd \" ef")
<element attr="ab ' cd &quot; ef">

当使用参考具体语法为 HTML 或任何 SGML 生成属性值时,此Function很有用。

2.2 版中的新Function。

    • class * xml.sax.saxutils. XMLGenerator([* out * [,* encoding *]])
    • 此类pass将 SAX 事件写回到 XML 文档中来实现ContentHandler接口。换句话说,使用XMLGenerator作为内容处理程序将重现正在解析的原始文档。 * out 应该是类似文件的对象,默认为 sys.stdout *。 * encoding *是输出流的编码,默认为'iso-8859-1'
    • class * xml.sax.saxutils. XMLFilterBase(* base *)
    • 此类设计为位于XMLReader与 Client 端应用程序的事件处理程序之间。默认情况下,它什么都不做,只是将请求传递到读取器,并将事件未经修改地传递到处理程序,但是子类可以覆盖特定的方法,以在事件流或配置请求pass时修改它们。
  • xml.sax.saxutils. prepare_input_source(* source * [,* base *])

    • 此函数使用 Importing 源和可选的基本 URL,并返回一个完全解析的InputSource对象,可供读取。Importing 源可以指定为字符串,类似文件的对象或InputSource对象。解析器将使用此函数将parse()方法实现多态* source *参数。