所有子元素考虑用以下结构的XML文件:删除父元素和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>
元素,除了所有的子元素。谁能帮忙!谢谢。
+1即使未经测试,因为它可能有效,或者至少99%的解决方案,如果它没有。 – synthesizerpatel 2014-09-23 23:33:26