<grandparent>
<parent1>
<child>data1</child>
</parent1>
<parent2>
<child>data2</child>
</parent2>
</grandparent>
我需要含有母体的元组,数据以XML每个父列表。
有没有办法做到这一点使用cElementTree?我能够为孩子,数据做到这一点,但不幸的是,孩子在所有的价值观上都是一样的,因此它的用处不大。
<grandparent>
<parent1>
<child>data1</child>
</parent1>
<parent2>
<child>data2</child>
</parent2>
</grandparent>
我需要含有母体的元组,数据以XML每个父列表。
有没有办法做到这一点使用cElementTree?我能够为孩子,数据做到这一点,但不幸的是,孩子在所有的价值观上都是一样的,因此它的用处不大。
似乎你可以通过使用xpath命令(如child.find('../parent')
),使用ElementTree的版本1.3(检查http://effbot.org/zone/element-xpath.htm)从子项访问父项。但我认为Python带有版本1.2或其他东西。
您也应该检查LXML这与etree兼容,并具有完整的XPath支持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/..')
没有去基地父,并用工作双斜杠然后在路径中单斜杠。
(将作为注释发布到上面的主题,但它似乎我没有特权)
该文档说了类似于`在2.7版本中更改:ElementTree API更新为1.3.`在http:// docs .python.org/2/library/xml.etree.elementtree我使用的是2.7,但对我来说``../ myparent''似乎仍然不起作用;这是什么意思? – n611x007 2013-01-10 22:45:13
是的,我不认为这是cElementTree的支持。例如:ET.fromstring(“”).find('.// b')。find('..')返回None – 2014-10-09 10:27:54