XML库建议

时间:2013-05-08 20:30:51

标签: python xml-parsing

我不知道这是否是提出这个问题的合适地点,但这里有......

我有一个我想读的XML文件。到目前为止,我一直在使用lxml.etree.ElementTree。但是,我发现我需要的功能允许我从子节点传播到XML中的父节点。

lxml.etree.ElementTree似乎无法做到这一点。是否有一个xml解析库可以让我这样做?

如果重要,我正在使用Python 2.7.3

谢谢

1 个答案:

答案 0 :(得分:1)

xml.etree.ElementTree.Element s不跟踪父元素,但是lxml.etree._Element s:

parent = elt.getparent()

例如,

import lxml.etree as ET
# import xml.etree.ElementTree as ET
text = '''\
<root>
<foo>
    <bar/>
    <bar/>
</foo>
</root>'''

root = ET.fromstring(text)
for elt in root.findall('foo/bar'):
    parent = elt.getparent()
    print(parent)

产量

<Element foo at 0xb7415c34>
<Element foo at 0xb7415c34>