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