所有子元素考慮用以下結構的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