保持属性顺序的XML解析器 - 编写器

时间:2010-10-23 11:02:49

标签: python xml

我需要解析XML文档,然后将每个节点写入单独的文件,保持属性的确切顺序。 所以,如果我有输入文件,如:

<item a="a" b="b" c="c"/>
<item a="a1" b="b2" c="c3"/>

每个项目的输出应为2个文件。 现在如果使用xml.dom.minidom - 在输出中更改属性顺序(我可以得到 - <item b="b" c="c" **a="a"**/>

我找到了pxdom lib,它保持顺序但非常慢(minidom解析需要0.08秒,pxdom解析需要2.5秒。)

还有其他可以保存属性的python库吗?

UPD:libarry也应该保持大小写。所以“Item”不等于“item”

2 个答案:

答案 0 :(得分:1)

您可能会发现this question有用。底线摘要 - 标准的xml工具和库很可能无法做到这一点。

答案 1 :(得分:0)

您可以使用BeautifulSoup:

>>> from BeautifulSoup import BeautifulSoup as soup

>>> html = '''<item a="a" b="b" c="c"/>
<item a="a1" b="b2" c="c3"/>'''
>>> s = soup(html)
>>> s.findAll('item')
[<item a="a" b="b" c="c"></item>, <item a="a1" b="b2" c="c3"></item>]