当前位置: 主页 > Python语言

python xml解析-python解析xml文件内容

发布时间:2023-02-10 07:12   浏览次数:次   作者:佚名

我应该使用哪个 XML 库?

Python 有许许多多用于处理 XML 的工具。 在本节中,我想简要介绍一下 Python 提供的包,并解释为什么 ElementTree 是您最应该使用的包。

xml.dom.* 模块 - 是 W3C DOM API 的实现。 如果您需要处理 DOM API,那么此模块适合您。 注意:xml.dom包中有很多模块,注意它们之间的区别。

xml.sax.* 模块 - 是 SAX API 的实现。 该模块牺牲了速度和内存使用的便利性。 SAX 是一种基于事件的 API,这意味着它可以“即时”处理大量文档,而无需将它们完全加载到内存中(见注释 1)。

xml.parser.expat - 是一个简单的、低级的基于 C 的 expat 解析器(见注释 2)。 expat接口是基于事件反馈的,有点像SAX又不太像,因为它的接口在expat库中还没有完全标准化。

最后我们来看一下xml.etree.ElementTree(以下简称ET)。 它提供了一个轻量级的类 Python APIpython xml解析,由 C 实现提供。 与 DOM 相比python xml解析,ET 速度更快(见注释 3)并且有很多不错的 API 可供使用。 与SAX相比,ET还有提供“空中”处理的ET.iterparse,无需将整个文档加载到内存中。 ET 的平均性能与 SAX 大致相同,但 API 更高效且更易于使用。 稍后我将向您展示一个演示。

我的建议是尽量使用ET来处理XML,除非你有一些非常特殊的需求。