– 支持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中更改:增加对
strinstances.
典型的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) -
的子类
SAXExceptionSAX时提出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.
评论被关闭。