【发布时间】:2014-11-18 07:24:12
【问题描述】:
给定一个具有以下结构的 XML 文件:
<Root>
<Stuff></Stuff>
<MoreStuff></MoreStuff>
<Targets>
<Target>
<ID>12345</ID>
<Type>Ground</Type>
<Size>Large</Size>
</Target>
<Target>
...
</Target>
</Targets>
</Root>
我正在尝试遍历<Targets> 元素下的每个子元素,检查每个<ID> 的特定值,如果找到该值,那么我想删除整个<Target> 条目。我一直在使用 ElementTree Python 库,但收效甚微。这是我目前所拥有的:
import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()
iterator = root.getiterator('Target')
for item in iterator:
old = item.find('ID')
text = old.text
if '12345' in text:
item.remove(old)
tree.write('out.xml')
我在使用这种方法时遇到的问题是仅删除了 <ID> 子元素,但是我需要删除整个 <Target> 元素及其所有子元素。谁能帮忙!谢谢。
【问题讨论】:
标签: python xml python-2.7 elementtree