Как удалить все элементы, соответствующие xpath в python, используя lxml?

Итак, у меня есть такой 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.

Что такое аккуратный способ сделать это?

Ответы

Ответ 1

попробовать:

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

удалить из него родительский, а не корень (если он не является дочерним элементом корневого элемента)