以下のような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