Why it doesn't work?

作業のメモ、記録をブログに残しています。

Python XMLを解析(Parse)する

以下のようなXMLファイルをサンプルとして使用します。ファイル名は”stations.xml”とします。

<?xml version="1.0"?>
<data>
  <station name="Tokyo Station">
      <coordinates>
        <lat>35.681442</lat>
        <lng>139.767098</lng>
      </coordinates>
  </station>
  <station name="Ueno Station">
      <coordinates>
        <lat>35.712408</lat>
        <lng>139.776167</lng>
      </coordinates>
  </station>
</data>

xmlの解析にはElementTreeを利用します。
まずはrootを取得します。

import xml.etree.ElementTree as ET
tree = ET.parse('stations.xml')
root = tree.getroot()
print(root.tag)
print(root.attrib)

結果は以下の通りです。

data
{}

次に取得可能な子ノードを表示させます

for child in root:
    print(child.tag,child.attrib )

結果は以下の通りです。

station {'name': 'Tokyo Station'}
station {'name': 'Ueno Station'}

特定の要素を指定してデータ取り出します。

for coordinate in root.iter('coordinates'):
    print (coordinate.find('lat').text, coordinate.find('lng').text)

結果は以下の通りです。

35.681442 139.767098
35.712408 139.776167