Python中的XML解析[关闭]

Posted

技术标签:

【中文标题】Python中的XML解析[关闭]【英文标题】:XML parsing in Python [closed] 【发布时间】:2009-09-03 14:24:11 【问题描述】:

我想使用 python 解析一个简单的小型 XML 文件,但是对 pyXML 的工作似乎已经停止。如果可能的话,我想使用 python 2.6。谁能推荐一个适用于 2.6 的 XML 解析器?

谢谢

【问题讨论】:

【参考方案1】:

如果它又小又简单,那么只需use the standard library:

from xml.dom.minidom import parse
doc = parse("filename.xml")

这将返回一个实现标准Document Object Model API的DOM树

如果您以后需要执行架构验证或 XPath 查询等复杂的事情,那么我推荐第三方 lxml module,它是流行的 libxml2 C 库的包装器。

【讨论】:

【参考方案2】:

对于我的大部分任务,我使用了 Minidom Lightweight DOM 实现,来自官方页面:

from xml.dom.minidom import parse, parseString

dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name

datasource = open('c:\\temp\\mydata.xml')
dom2 = parse(datasource)   # parse an open file

dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')

【讨论】:

【参考方案3】:

Here也是一个很好的例子,说明如何使用minidom。

【讨论】:

链接似乎重定向到主页,但前面没有 www。这是一个工作链接:diveintopython.net/xml_processing/index.html 修复了链接。谢谢!【参考方案4】:

lxml 会满足您的需求吗?它是我用来解析 xml 的第一个工具。

【讨论】:

另外,Python 2.5+ 集成了 etree。它实现了相当于 lxml 的一个子集。我使用 etree 进行简单的 XML 处理,当我需要 etree 没有完全涵盖的任何内容时使用 lxml。【参考方案5】:

几年前,我编写了一个用于处理结构化 XML 的库。它通过做出一些限制性假设使 XML 更简单。

您可以将 XML 用于诸如文字处理器文档之类的东西,在这种情况下,您将拥有一堆复杂的东西,其中到处都嵌入了 XML 标记;在这种情况下,我的图书馆就不好了。

但是,如果您将 XML 用于配置文件之类的东西,我的库相当方便。您定义描述所需 XML 结构的类,一旦完成这些类,就有一种方法可以在 XML 中啜饮并解析它。实际的解析是由 xml.dom.minidom 完成的,然后我的库会提取数据并将其放入类中。

最好的部分:您可以声明一个“集合”类型,它将是一个 Python 列表,其中包含零个或多个其他 XML 元素。这对于 Atom 或 RSS 提要(这是我设计库的最初原因)之类的东西非常有用。

这是网址:http://home.avvanta.com/~steveha/xe.html

如果您有任何问题,我很乐意回答。

【讨论】:

以上是关于Python中的XML解析[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android:解析 XML 数据的最佳解析器 [关闭]

在 Python xml.dom 中读取字符串而不解析

python使用SAX解析xml

如何从python中的字符串解析XML

python中的Atom feed(XML)解析[重复]

如何在 python 代码中解析多个 xml 文件?