Skip to main content

20.11. xml.sax.saxutils — SAX实用程序

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


模块 xml.sax.saxutils 包含许多类和函数,这些类和函数在创建SAX应用程序时通常很有用,无论是直接使用还是作为基类。

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

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

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

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 参数。