好吧,我终于把XML树走了下来,然后吐出我想要的信息吐出来,但现在我想弄清楚如何修改XML树可以删除我不想要的所有垃圾并用修改后的树覆盖旧文件。
执行以下操作:
import xml.etree.ElementTree as ET
tree = ET.parse('nmaptest.xml')
root = tree.getroot()
for host in root.iter('host'):
for elem in host.iter():
if elem.tag == "extraports":
if elem.tag['count'] == "1000":
print elem.attrib['count']
从每个具有该值的元素中正确地吐出一堆1000 ...如果我删除了第二个if语句,它会输出所有不同的数字(996,988,取决于开放端口, )但是,当我将print elem.attrib行更改为
时root.remove(host)
它实际上并没有删除主机节点/元素/无论我认为它应该是什么样的方式......我错过了什么?
答案 0 :(得分:0)
在root.remove(host)
之后,您需要tree.write('your.xml')
才能看到更改。
for host in root.iter('host'):
for elem in host.iter():
if elem.tag == "extraports":
if elem.tag['count'] == "1000":
root.remove(host)
tree.write('your.xml')` # write changes