我不知道这里是否是问这个问题的合适地方,但是这里...

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

对于lxml.etree.ElementTree,这似乎是不可能的。是否有一个XML解析库可让我做到这一点?

万一重要,我使用的是Python 2.7.3

谢谢

最佳答案

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

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>

关于python - XML库建议,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16449653/

10-12 23:24