import xml.etree.ElementTree as ET
tree = ET.parse('nmaptest.xml')
root = tree.getroot()
然后我查看了这些示例,并试图找出如何访问和迭代每个元素。当我觉得我开始了解它是如何拼凑起来的,我就不能让它做我想做的事。在
最后,我希望解析它并将相关数据转储到数据库中,以便以后进行比较(或者编写一个脚本来简单地比较两个xml文档,但这超出了我目前的能力范围)
我试过以下几点
^{pr2}$
为了打印出主机名、IP地址和每个端口打开的端口。。。它不太管用,就像主机名和地址完全不同,尽管我不明白为什么会这样。我还发现你只需print host[1].attrib['addr']
但是我找不到任何一种一致性,当东西被一个整数索引时,比如上面的(因为主机[3]看起来不像你想象的那样是主机名,而主机[2]似乎是主机名,但没有.attrib或任何东西),当它们是一个属性,当它们也是字典键时。有时候我觉得我找到了我要找的东西,而不是for host in root.iter('host'):
print host[1].attrib
{'addrtype': 'ipv4', 'addr': '10.1.102.255'}
我将对某个东西做一个.attrib,然后看到空括号{},就像我这样做的时候for host in root.iter('host'):
print host[2].attrib
所以我根本不明白它是如何解析文档的。。。我想没人能帮我弄清楚,也没人能给我指出一些可能对我有帮助的文件吗?在
下面是XML输出中的一个示例条目。。。在