我正在尝试从以下XML文件中提取一些元素(精简nmap
输出):
<?xml version="1.0"?>
<nmaprun>
<host starttime="1381245200" endtime="1381245316">
<address addr="192.168.1.5" addrtype="ipv4"/>
<hostnames>
<hostname name="host1.example.com" type="PTR"/>
</hostnames>
<os>
<osmatch>
<osclass type="general purpose" vendor="Linux" osfamily="Linux" osgen="2.6.X" accuracy="100">
<cpe>cpe:/o:linux:linux_kernel:2.6</cpe>
</osclass>
</osmatch>
</os>
</host>
</nmaprun>
代码如下:
^{pr2}$其思想是提取IP、主机名和操作系统。输出结果显示
UNKNOWN address
UNKNOWN hostnames/hostname
Linux
因此,最里面的路径(osfamily)起作用,而其他路径(hostname)则失败。打什么电话联系他们?在
我认为问题在于
i.find(h['path'])
的布尔比较。它检查该元素是否有子元素,并且它只发生在<osclass>
中。您必须检查它是否为空,与None
进行比较,例如:它产生:
^{pr2}$相关问题 更多 >
编程相关推荐