使用 ElementTree,以 Python 语言处理 XML
2007-03-29 12:11:28 来源:WEB开发网Fredrik Lundh 的 ElementTree 模块是一种日益受欢迎的 API,用于以 Python 语言进行轻量级且高速的 XML 文档操作。在这篇专栏文章中,David 将 ElementTree 和其它几种致力于以对象树方式处理 XML 实例的库,尤其是他自己的 gnosis.xml.objectify 模块,作了个比照。
在本专栏以前的文章中,我已讨论了一些 XML 库,它们旨在以给定编程语言仿真最常见的本机操作。其中,我首先介绍了我自己的、用于 Python 的 gnosis.xml.objectify 。另外我也专门用了几篇文章介绍 Haskell 的 HaXml 和 Ruby 的 REXML 。虽然我还未在这里讨论过,但 Java 的 JDOM和 Perl 的 XML::Grove也有着类似的目标。
最近,我在 comp.lang.python 新闻组上注意到一些帖子,提到了 Fredrik Lundh 的 ElementTree,一个用于 Python 的本机 XML 库。当然,在 Python 的标准分发版中早已包括了几个 XML API,包括:DOM 模块、SAX 模块、 expat包装器和不赞成使用的 xmllib。其中,只有 xml.dom将 XML 文档转换为内存中的对象,您可以通过节点上的方法调用来操作这些对象。实际上,您将发现存在几种不同的 Python DOM 实现,其特性各有不同:
xml.minidom是一个基本的实现。
xml.pulldom只在需要时构建被访问的子树。
考虑到速度问题,4Suite 的 cDomlette( Ft.Xml.Domlette)用 C 语言构建 DOM 树,避免了使用 Python 回调。
当然,出于我身为作者的自负,我最想做的是将 ElementTree和我自己的 gnosis.xml.objectify及其它几种目的和行为都极其接近的库进行比较。 ElementTree的目标是以数据结构的形式存储 XML 文档的表示,这些数据结构的行为方式同您在 Python 中考虑数据的方式非常相似。这里的关注焦点在于以 Python 进行编程,而不是使您的编程风格顺应 XML。
Tags:使用 ElementTree Python
编辑录入:爽爽 [复制链接] [打 印]赞助商链接