XML:删除节点的子节点

时间:2010-04-19 09:59:47

标签: python

我想找到xml文件中具有特定标记名称的所有节点,让我们说“foo”。 如果那些foo-tags让它们具有节点名称为“bar”的子节点,那么我想删除这些节点。结果应该写入文件。

<myDoc>
  <foo>
    <bar/> // remove this one
  </foo>
  <foo>
    <anyThing>
      <bar/> // don't remove this one
    </anyThing>
  </foo>
</myDoc> 

Thanx任何提示。正如标签所示,我想用python做这个。

1 个答案:

答案 0 :(得分:5)

您可以使用ElementTree

from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse('in.xml')

foos = tree.findall('foo')
for foo in foos:
  bars = foo.findall('bar')
  for bar in bars:
    foo.remove(bar)

tree.write('out.xml')