私はminidomを使用しようとしていますが、本当の好みはありません。何らかの理由でlxmlが私のマシンにインストールされません。xmlツリーの属性を解析する(ファイルには要素がありません)
私は、XMLファイルを解析したいと思います:
<?xml version="1.
-<transfer frmt="1" vtl="0" serial_number="E5XX-0822" date="2016-10-03 16:34:53.000" style="startstop">
-<plateInfo>
<plate barcode="E0122326" name="384plate" type="source"/>
<plate barcode="A1234516" name="1536plateD" type="destination"/>
</plateInfo>
-<printmap total="1387">
<w reason="" cf="13" aa="1.779" eo="299.798" tof="32.357" sv="1565.311" ct="1.627" ft="1.649" fc="88.226" memt="0.877" fldu="Percent" fld="DMSO" dy="0" dx="0" region="-1" tz="18989.481" gy="72468.649" gx="55070.768" avt="50" vt="50" vl="3.68" cvl="3.63" t="16:30:47.703" dc="0" dr="0" dn="A1" c="0" r="0" n="A1"/>
<w reason="" cf="13" aa="1.779" eo="299.798" tof="32.357" sv="1565.311" ct="1.627" ft="1.649" fc="88.226" memt="0.877" fldu="Percent" fld="DMSO" dy="0" dx="0" region="-1" tz="18989.481" gy="72468.649" gx="55070.768" avt="50" vt="50" vl="3.68" cvl="3.63" t="16:30:47.703" dc="0" dr="0" dn="A1" c="1" r="0" n="A2"/>
</printmap>
</transfer>
あなたが見ることができるように、ファイルは、任意の要素の詳細を持っていません。すべての情報は属性に含まれています。別のSOの投稿に適応しようとすると、私はこれを持っていますが、それは要素の方に向いているようです。私はまた、 "dir(xml_file)"と言ってツリー構造上で実行できるすべてのメソッドのリストを持っている、あるいはすべての属性を参照したいというxml情報を "ブラウズ"するのにはうまくいかない。私はこれがたくさんあり、潜在的に異なった方向であったことを知っていますが、事前に感謝します!
def parse(files):
for xml_file in files:
xmldoc = minidom.parse(xml_file)
transfer = xmldoc.getElementsByTagName('transfer')[0]
plateInfo = transfer.getElementsByTagName('plateInfo')[0]
あなたがElementTreeのを使用していないが理由です - 屋知っている、[Python標準ライブラリに同梱されている](https://docs.python.org/2/library/xml.etree.elementtree.html)? 'minidom'は、最も古いXMLライブラリのうちの一つであり、これが示しています。 –