xml.sax
---支持SAX2解析器¶
这个 xml.sax
包提供了许多模块,这些模块为Python实现了简单的XML API(SAX)接口。包本身提供了SAX异常和SAX API用户最常用的便利功能。
在 3.7.1 版更改: 默认情况下,SAX解析器不再处理常规外部实体以提高安全性。在此之前,解析器创建网络连接以从文件系统中获取DTD和实体的远程文件或加载的本地文件。可以使用方法再次启用该功能 setFeature()
关于解析器对象和参数 feature_external_ges
.
便利功能包括:
- xml.sax.make_parser(parser_list=[])¶
创建并返回SAX
XMLReader
对象。将使用找到的第一个分析器。如果 parser_list 如果提供了,则它必须是命名具有名为的函数的模块的字符串的iterablecreate_parser()
. 中列出的模块 parser_list 将在默认分析器列表中的模块之前使用。在 3.8 版更改: 这个 parser_list 参数可以是任何iterable,而不仅仅是一个列表。
- xml.sax.parse(filename_or_stream, handler, error_handler=handler.ErrorHandler())¶
创建一个SAX解析器并使用它来解析文档。文件,作为 filename_or_stream ,可以是文件名或文件对象。这个 处理程序 参数必须是SAX
ContentHandler
实例。如果 error_handler 一定是萨克斯ErrorHandler
实例;如果省略,SAXParseException
将在所有错误时引发。没有返回值;所有工作必须由 处理程序 过去了。
- xml.sax.parseString(string, handler, error_handler=handler.ErrorHandler())¶
类似
parse()
,但从缓冲区解析 string 作为参数接收。 string 必须是str
实例或A bytes-like object .在 3.5 版更改: 增加了对
str
实例。
典型的SAX应用程序使用三种对象:读卡器、处理程序和输入源。”在本文中,reader是解析器的另一个术语,即从输入源读取字节或字符并生成事件序列的代码。然后事件被分发到处理程序对象,即读卡器调用处理程序上的一个方法。因此,SAX应用程序必须获取一个读卡器对象,创建或打开输入源,创建处理程序,并将这些对象连接在一起。作为准备的最后一步,将调用读卡器来解析输入。在解析期间,基于输入数据的结构和语法事件调用处理程序对象上的方法。
对于这些对象,只有接口是相关的;它们通常不由应用程序本身实例化。因为python没有明确的接口概念,所以它们正式地作为类引入,但是应用程序可能使用不从提供的类继承的实现。这个 InputSource
, Locator
, Attributes
, AttributesNS
和 XMLReader
接口在模块中定义 xml.sax.xmlreader
. 处理程序接口在中定义 xml.sax.handler
. 为了方便, InputSource
(通常直接实例化)和处理程序类也可以从 xml.sax
. 这些接口如下所述。
除了这些课程, xml.sax
提供以下异常类。
- exception xml.sax.SAXException(msg, exception=None)¶
封装XML错误或警告。此类可以包含来自XML解析器或应用程序的基本错误或警告信息:它可以被子类化以提供附加功能或添加本地化。请注意,尽管
ErrorHandler
接口接收此异常的实例,不需要实际引发异常---它还可以用作信息容器。实例化后, msg 应该是人类可读的错误描述。可选的 exception 参数(如果给定)应为
None
或者是被解析代码捕获并作为信息传递的异常。这是其他SAX异常类的基类。
- exception xml.sax.SAXParseException(msg, exception, locator)¶
的子类
SAXException
分析错误时引发。此类的实例将传递给SAX的方法ErrorHandler
提供有关分析错误的信息的接口。这个类支持SAXLocator
接口以及SAXException
接口。
- exception xml.sax.SAXNotRecognizedException(msg, exception=None)¶
的子类
SAXException
当萨克斯XMLReader
遇到无法识别的功能或属性。SAX应用程序和扩展可以将这个类用于类似的目的。
- exception xml.sax.SAXNotSupportedException(msg, exception=None)¶
的子类
SAXException
当萨克斯XMLReader
要求启用不受支持的功能,或将属性设置为实现不支持的值。SAX应用程序和扩展可以将这个类用于类似的目的。
参见
- SAX: The Simple API for XML
这个站点是SAX API定义的焦点。它提供了Java实现和在线文档。还提供了到实现和历史信息的链接。
- 模块
xml.sax.handler
应用程序提供对象的接口定义。
- 模块
xml.sax.saxutils
在SAX应用程序中使用的方便函数。
- 模块
xml.sax.xmlreader
解析器提供的对象的接口定义。
SaxException对象¶
这个 SAXException
异常类支持以下方法:
- SAXException.getMessage()¶
返回描述错误情况的可读消息。
- SAXException.getException()¶
返回封装的异常对象,或者
None
.