– 支持SAX2解析器 – 结构化标记处理工具(Python教程)(参考资料)
xml.sax
– 支持SAX2解析器
源代码: Lib / xml / sax / __ init__.py
xml.sax
包提供了许多实现的模块用于Python的简单API for XML(SAX)接口。软件包本身提供SAX异常和SAX API用户最常用的便捷功能.
Warning
xml.sax
模块不能安全地防止恶意构建的数据。如果您需要解析不受信任或未经身份验证的数据,请参阅 XML漏洞.
在版本3.7.1中更改: SAX解析器默认不再处理常规外部实体以提高安全性。之前,解析器创建网络连接以从DTD和实体的文件系统获取远程文件或加载本地文件。可以在解析器对象和参数setFeature()
上使用方法feature_external_ges
.
再次启用该功能。便利功能是:
xml.sax.
make_parser
(parser_list=[])-
创建并返回一个SAX
XMLReader
对象。找到的第一个解析器将被使用。如果parser_list提供,它必须是一个字符串列表,其名称模块具有名为create_parser()
的函数。在parser_list中列出的模块将在默认解析器列表中的模块之前使用.
xml.sax.
parse
(filename_or_stream, handler, error_handler=handler.ErrorHandler())-
创建一个SAX解析器并使用它来解析文档。以filename_or_stream传入的文档可以是文件名或文件对象。handler参数需要是SAX
ContentHandler
实例。如果error_handler给出,它必须是SAXErrorHandler
实例;ifomitted,SAXParseException
将在所有错误上提出。有noreturn值;所有工作必须由handler传入了
xml.sax.
parseString
(string, handler, error_handler=handler.ErrorHandler())-
相近
parse()
,但从缓冲区解析string作为参数收到。string必须是str
实例或字节对象.在版本3.5中更改:增加对
str
instances.
典型的SAX应用程序使用三种对象:读取器,处理程序和输入源。在此上下文中的“读者”是解析器的另一个术语,即从输入源读取字节或字符的一些代码,并产生一系列事件。然后事件被分发到handlerobjects,即读者调用处理程序上的方法。因此,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
提出解析错误。将此类的实例传递给SAXErrorHandler
接口的方法,以提供有关解析错误的信息。本课程支持SAXLocator
界面以及SAXException
界面
- exception
xml.sax.
SAXNotRecognizedException
// (msg, exception=None) -
在SAX时
SAXException
提出的子类XMLReader
遇到无法识别的功能或属性。SAX应用程序扩展可能会将此类用于类似目的.
- exception
xml.sax.
SAXNotSupportedException
(msg, exception=None) -
的子类
SAXException
SAX时提出XMLReader
要求启用不受支持的功能,或将属性设置为实现不支持的值。SAX应用程序和扩展可以使用此类用于类似目的.
参见
- SAX:XML的简单API
- 该站点是SAX定义的焦点API。它提供了Java实现和在线文档。还提供了实现和历史信息的链接.
- 模块
xml.sax.handler
- 应用程序提供的对象的接口定义.
- 模块
xml.sax.saxutils
- 便于使用的功能SAX应用程序.
- 模块
xml.sax.xmlreader
- 解析器提供的对象的接口定义.
SAXException对象
SAXException
异常类支持以下方法:
SAXException.
getMessage
()-
返回描述错误情况的人类可读信息.
SAXException.
getException
()-
返回一个封装的异常对象,或
None
.
评论被关闭。