我想使用 python 解析一个简单的小型 XML 文件,但是对 pyXML 的工作似乎已经停止。如果可能的话,我想使用 python 2.6。谁能推荐一个适用于 2.6 的 XML 解析器?
谢谢
我想使用 python 解析一个简单的小型 XML 文件,但是对 pyXML 的工作似乎已经停止。如果可能的话,我想使用 python 2.6。谁能推荐一个适用于 2.6 的 XML 解析器?
谢谢
如果它又小又简单,那么只需使用标准库:
from xml.dom.minidom import parse
doc = parse("filename.xml")
这将返回一个实现标准文档对象模型 API的 DOM 树
如果你以后需要做复杂的事情,比如模式验证或 XPath 查询,那么我推荐第三方lxml 模块,它是流行的 libxml2 C 库的包装器。
对于我的大部分任务,我使用了官方页面上的 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>')
这里也是一个很好的例子,说明如何使用 minidom 以及解释。
lxml会满足您的需求吗?它是我用来进行 xml 解析的第一个工具。
几年前,我编写了一个用于处理结构化XML 的库。它通过做出一些限制性假设使 XML 更简单。
您可以将 XML 用于诸如文字处理器文档之类的东西,在这种情况下,您会得到一堆复杂的东西,其中到处都嵌入了 XML 标记;在这种情况下,我的图书馆不会很好。
但是,如果您将 XML 用于配置文件之类的东西,我的库会相当方便。您定义描述所需 XML 结构的类,一旦完成这些类,就有一种方法可以在 XML 中啜饮并解析它。实际的解析是由 xml.dom.minidom 完成的,但是我的库会提取数据并将其放入类中。
最好的部分:您可以声明一个“集合”类型,它将是一个 Python 列表,其中包含零个或多个其他 XML 元素。这对于 Atom 或 RSS 提要(这是我设计库的最初原因)之类的东西非常有用。
这是网址:http://home.avvanta.com/~steveha/xe.html
如果您有任何问题,我很乐意回答。