xml.sax.saxutils
— SAX 工具¶
模块 xml.sax.saxutils
包含许多在创建 SAX 应用程序时常用的类和函数,可以直接使用,也可以作为基类使用。
- xml.sax.saxutils.escape(data, entities={})¶
转义数据字符串中的
'&'
,'<'
和'>'
。您可以通过传递字典作为可选的 *entities* 参数来转义其他数据字符串。键和值都必须是字符串;每个键都将被其对应的值替换。字符
'&'
、'<'
和'>'
始终会被转义,即使提供了 *entities*。注意
此函数应仅用于转义不能在 XML 中直接使用的字符。请勿将此函数用作通用的字符串转换函数。
- xml.sax.saxutils.unescape(data, entities={})¶
取消转义数据字符串中的
'&'
,'<'
和'>'
。您可以通过传递字典作为可选的 *entities* 参数来取消转义其他数据字符串。键和值都必须是字符串;每个键都将被其对应的值替换。
'&'
、'<'
和'>'
始终会被取消转义,即使提供了 *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 " 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* 参数。