我正在尝试使用 lxml 使用 python 解析 XML 文件,但在基本尝试时出错。我使用这篇文章和lxml 教程来引导。
我的 XML 文件基本上是根据下面的记录构建的(我将其修剪下来以便于阅读):
<?xml version="1.0" ?>
<?xml-stylesheet href="file:///usr/share/nmap/nmap.xsl" type="text/xsl"?>
<nmaprun scanner="nmap" args="nmap -sV -p135,12345 -oX 10.232.0.0.16.xml 10.232.0.0/16" start="1340201347" startstr="Wed Jun 20 16:09:07 2012" version="5.21" xmloutputversion="1.03">
<host>
<hostnames>
<hostname name="host1.example.com" type="PTR"/>
</hostnames>
</host>
</nmaprun>
我通过这个复杂的脚本运行它:
from lxml import etree
d = etree.parse("myfile.xml")
for host in d.findall("host"):
aa = host.find("hostnames/hostname")
print aa.attrib["name"]
我AttributeError: 'NoneType' object has no attribute 'attrib'
上print
线了。我检查了的值d
,它们都被定义为元素。host
aa
如果这是显而易见的事情(很可能是),请提前道歉。
编辑:我按要求添加了 XML 文件的标题(我仍在阅读和重新阅读答案:))
谢谢!