我想使用python解析一个简单的小型XML文件,但pyXML上的工作似乎已停止。如果可能,我想使用python 2.6。任何人都可以推荐一个可用于2.6的XML解析器吗?Python中的XML解析
感谢
我想使用python解析一个简单的小型XML文件,但pyXML上的工作似乎已停止。如果可能,我想使用python 2.6。任何人都可以推荐一个可用于2.6的XML解析器吗?Python中的XML解析
感谢
如果是小而简单,然后只需use the standard library:
from xml.dom.minidom import parse
doc = parse("filename.xml")
这将返回一个DOM树实现标准Document Object Model API
如果以后需要做这样的模式验证复杂的事情或XPath查询,然后我推荐第三方lxml module,它是流行的libxml2 C库的封装。
请问lxml是否符合您的需求?它是我转向进行xml解析的第一个工具。
另外,Python 2.5+已经集成了etree。它实现了什么相当于lxml的子集。当我需要etree没有完全覆盖的任何东西时,我使用etree进行简单的XML处理和lxml。 –
几年前,我写了一个库,用于处理结构化的 XML。它通过做出一些限制性假设使得XML更简单。
您可以将XML用于类似于文字处理器文档的东西,在这种情况下,您将XML标签嵌入到整个场所中,在这种情况下,我的图书馆将不会好。
但是,如果您使用的是类似于配置文件的XML,我的库相当方便。你定义了描述你想要的XML结构的类,一旦你完成了这些类,就有了一种方法来处理XML并解析它。实际的解析由xml.dom.minidom完成,但是我的库提取数据并将其放入类中。
最好的部分是:你可以声明一个“Collection”类型,它将成为一个Python列表,其中包含零个或多个其他XML元素。这对Atom或RSS feeds这些东西来说非常棒(这是我设计库的最初原因)。
这里的网址:http://home.avvanta.com/~steveha/xe.html
我会很高兴,如果您有任何回答问题。
对于大多数我的任务我已经使用了轻量级minidom命名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>')
谢谢!太容易了。 – Alex