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.stdout*。*encoding* 是输出流的编码,默认为 '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* 参数。