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解析[关闭]的主要内容,如果未能解决你的问题,请参考以下文章