所以我有一些像这样的XML:
<bar>
<foo>Something</foo>
<baz>
<foo>Hello</foo>
<zap>Another</zap>
<baz>
<bar>
我想删除所有foo节点。像这样的东西不起作用
params = xml.xpath('//foo')
for n in params:
xml.getroot().remove(n)
给予
ValueError: Element is not a child of this node.
这样做的方法是什么?
答案 0 :(得分:19)
尝试:
for elem in xml.xpath( '//foo' ) :
elem.getparent().remove(elem)
从它的父节点而不是根节目中删除它 (除非它是根元素的子元素)