Python SAX API

xml.sax — 支持 SAX2 解析器

xml.sax 包提供了许多模块来实现 适用于 Python 的 XML 简单 API (SAX) 接口。包本身提供 SAX例外和用户最常用的便利功能 SAX API。

警告

 

xml.sax 模块不能防止恶意 构造数据。如果需要分析不受信任或未经身份验证的数据,请参阅 XML 漏洞

在 3.7.1 版更改: 默认情况下,SAX 分析器不再处理常规外部实体 以提高安全性。之前,解析器创建了网络连接 从文件中获取远程文件或加载的本地文件 DTD 和实体的系统。可以使用解析器对象上的 setFeature() 方法再次启用该功能 和论点feature_external_ges

便利功能包括:

xml.sax.make_parserparser_list=[])

创建并返回 SAX XMLReader 对象。这 找到的第一个解析器将 被使用。如果提供了parser_list,它必须是字符串的迭代对象, 命名具有名为 的函数的模块。列出的模块 in parser_list 将在默认解析器列表中的模块之前使用。create_parser()

在 3.8 版更改: parser_list参数可以是任何可迭代的,而不仅仅是列表。

xml.sax.parsefilename_or_stream, handler, error_handler=handler.错误处理程序())

创建 SAX 分析器并使用它来分析文档。作为filename_or_stream传入的文档可以是文件名或文件对象。处理程序参数必须是 SAX 内容处理程序实例。如果给定error_handler,则它必须是 SAX 错误处理程序实例;如果 省略,SAXParseException 将在所有错误时引发。没有 返回值;所有工作都必须由传入的处理程序完成。

xml.sax.parseStringstring, handler, error_handler=handler.错误处理程序())

与 parse() 类似,但从作为 参数。字符串必须是 str 实例或类似字节的对象

在 3.5 版更改: 添加了对 str 实例的支持。

典型的 SAX 应用程序使用三种对象:读取器、处理程序和 输入源。在这种情况下,“读者”是解析器的另一个术语,即一些 从输入源读取字节或字符的代码段,以及 生成一系列事件。然后将事件分发到处理程序 对象,即读取器在处理程序上调用方法。一个 SAX 应用程序 因此必须获取读取器对象,创建或打开输入源,创建 处理程序,并将这些对象全部连接在一起。作为最后一步 准备时,调用读取器来解析输入。在解析期间,方法在 处理程序对象是根据来自 输入数据。

对于这些对象,只有接口是相关的;他们通常不是 由应用程序本身实例化。由于 Python 没有显式 接口的概念,它们被正式引入为类,但应用程序 可以使用不继承自提供的类的实现。输入源定位器、 和 XMLReader 接口在 模块 XML.SAX.XMLreader.处理程序接口在 xml.sax.handler 中定义。为方便起见,输入源(通常 直接实例化),处理程序类也可从 XML.sax 获得。下面介绍了这些接口。AttributesAttributesNS

除了这些类之外,xml.sax 还提供以下异常 类。

异常 XML.SAX。SAXExceptionmsg, exception=None)

封装 XML 错误或警告。此类可以包含基本错误或 来自 XML 解析器或应用程序的警告信息:它可以是 子类化以提供其他功能或添加本地化。注意 尽管在错误处理程序接口中定义的处理程序 接收此异常的实例,不需要实际引发 异常 — 它也可以用作信息的容器。

实例化时,msg 应该是人类可读的错误描述。 可选异常参数(如果给定)应该是 或异常 它被解析代码捕获,并作为信息传递。None

这是其他 SAX 异常类的基类。

异常 XML.SAX。SAXParseExceptionmsg, exception, locator)

SAXException 的子类在解析错误时引发。此实例 类传递给 SAX 错误处理程序接口的方法以提供信息 关于解析错误。此类支持 SAX 定位器接口以及 SAX 感知接口。

异常 XML.SAX。SAXNotRecognizedExceptionmsg, exception=None)

 SAX XMLReader 为 面对无法识别的功能或属性。SAX 应用程序和 扩展可以将此类用于类似目的。

异常 XML.SAX。SAXNotSupportedExceptionmsg, exception=None)

当 SAX XMLReader 被要求时引发的 SAXException 子类 启用不支持的功能,或将属性设置为以下值 实现不支持。SAX 应用程序和扩展可能会使用它 类用于类似目的。

参见

SAX:适用于 XML 的简单 API

此站点是定义 SAX API 的焦点。它提供了一个 Java 实现和在线文档。指向实现和的链接 还提供历史信息。

Module xml.sax.handler

应用程序提供的对象的接口的定义。

Module xml.sax.saxutils

用于 SAX 应用程序的便利功能。

模块 xml.sax.xmlreader

解析器提供的对象的接口定义。

SAXException Objects

The SAXException exception class supports the following methods:

SAXException.getMessage()

Return a human-readable message describing the error condition.

SAXException.getException()

Return an encapsulated exception object, or .None

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值