python etree详解_如何遍历使用Python的elmenttree模块解析的元素树?

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输出中的一个示例条目。。。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值