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