How can I remove all elements matching an xpath in python using lxml?
So I have some XML like this:
<bar>
<foo>Something</foo>
<baz>
<foo>Hello</foo>
<zap>Another</zap>
<baz>
<bar>
And I want to remove all the foo nodes. Something like this doesn't work
params = xml.xpath('//foo')
for n in params:
xml.getroot().remove(n)
Giving
ValueError: Element is not a child of this node.
What is a neat wa开发者_Go百科y to do this?
try:
for elem in xml.xpath( '//foo' ) :
elem.getparent().remove(elem)
remove it from it's parent, not the root ( unless it IS a child of the root element )
精彩评论