如何使用lxml删除与python中的xpath匹配的所有元素?

所以我有一些这样的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.

什么是整洁的方法呢?

最佳答案
尝试:

 for elem in xml.xpath( '//foo' ) :
      elem.getparent().remove(elem)

从它的父,而不是根删除它
(除非它是根元素的孩子)

转载注明原文:如何使用lxml删除与python中的xpath匹配的所有元素? - 代码日志