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
それらはすべて要素として定義されています。
これが明らかな場合は、事前にお詫び申し上げます (おそらくそうです)。
EDIT:要求に応じてXMLファイルのヘッダーを追加しました(私はまだ回答を読んで読み直しています:))
ありがとう!