xml.sax.saxutils — SAX 实用程序 — Python 文档

来自菜鸟教程
Python/docs/3.10/library/xml.sax.utils
跳转至:导航、​搜索

xml.sax.saxutils — SAX 实用程序

源代码: :source:`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 参数。