xml.sax.saxutils — SAX 工具

源代码: Lib/xml/sax/saxutils.py


模块 xml.sax.saxutils 包含许多在创建 SAX 应用程序时常用的类和函数,可以直接使用,也可以作为基类。

xml.sax.saxutils.escape(data, entities={})

转义字符串数据中的 '&''<''>'

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

注意

此函数只能用于转义不能直接在 XML 中使用的字符。不要将此函数用作通用的字符串转换函数。

xml.sax.saxutils.unescape(data, entities={})

反转义字符串数据中的 '&amp;''&lt;''&gt;'

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

xml.sax.saxutils.quoteattr(data, entities={})

escape() 类似,但也准备将 data 用作属性值。返回值是 data 的带引号版本,并进行了任何其他必要的替换。quoteattr() 将根据 data 的内容选择一个引号字符,尝试避免对字符串中的任何引号字符进行编码。如果单引号和双引号字符都已经存在于 data 中,则双引号字符将被编码,并且 data 将用双引号括起来。结果字符串可以直接用作属性值。

>>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef"))
<element attr="ab ' cd &quot; ef">

当为 HTML 或任何使用引用具体语法的 SGML 生成属性值时,此函数非常有用。

class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)

此类通过将 SAX 事件写回 XML 文档来实现 ContentHandler 接口。换句话说,使用 XMLGenerator 作为内容处理程序将重现正在解析的原始文档。out 应该是一个类似文件的对象,默认为 sys.stdoutencoding 是输出流的编码,默认为 'iso-8859-1'short_empty_elements 控制不包含内容的元素的格式:如果为 False(默认值),则将它们作为一对开始/结束标签发出,如果设置为 True,则将它们作为单个自闭合标签发出。

在 3.2 版更改: 添加了 short_empty_elements 参数。

class xml.sax.saxutils.XMLFilterBase(base)

此类设计用于位于 XMLReader 和客户端应用程序的事件处理程序之间。默认情况下,它不做任何事情,只是将请求传递给读取器并将事件传递给处理程序,不做任何修改,但子类可以覆盖特定方法,以在事件流或配置请求通过时修改它们。

xml.sax.saxutils.prepare_input_source(source, base='')

此函数接受一个输入源和一个可选的基 URL,并返回一个完全解析的 InputSource 对象,准备读取。输入源可以作为字符串、类似文件的对象或 InputSource 对象给出;解析器将使用此函数来实现其 parse() 方法的多态 source 参数。