对于 xml
<grandparent>
<parent1>
<child>data1</child>
</parent1>
<parent2>
<child>data2</child>
</parent2>
</grandparent>
我需要包含父元组的列表,xml 中每个父级的数据。
有没有办法使用 cElementTree 做到这一点?我可以为孩子、数据做这件事,但不幸的是孩子在所有值上都是相同的,因此它没有多大用处。
对于 xml
<grandparent>
<parent1>
<child>data1</child>
</parent1>
<parent2>
<child>data2</child>
</parent2>
</grandparent>
我需要包含父元组的列表,xml 中每个父级的数据。
有没有办法使用 cElementTree 做到这一点?我可以为孩子、数据做这件事,但不幸的是孩子在所有值上都是相同的,因此它没有多大用处。
看来您可以使用 ElementTree 1.3 版(检查http://effbot.org/zone/element-xpath.htm)从子级访问父级,通过使用 xpath 命令,如 child.find('../parent')
. 但我认为 python 附带 1.2 版或其他版本。
您还应该检查与 etree 兼容并具有完整 Xpath 支持的 lxml http://lxml.de/
parent_map = dict((c, p) for p in tree.getiterator() for c in p)
parent_map[el].remove(el)
这种语法似乎适用于 cElementTree
ET.fromstring("<c><a><b></b></a></c>").find('.//b/..')
不去基父,并在路径中使用双斜杠然后单斜杠。
(会作为评论发布到上述线程,但似乎我没有特权)