Pythonのxml.etree.ElementTreeモジュールは、XMLデータのパースと作成のためのシンプルで効率的なAPIを実装しています。このモジュールは、XMLが本質的に階層的なデータ形式であることを考慮に入れ、XMLを表現する最も自然な方法はツリーであると考えています。

ElementTreeには、この目的のための2つのクラスがあります:
ElementTreeは、全体のXMLドキュメントをツリーとして表現します。
Elementは、このツリーの単一のノードを表現します。

全体のドキュメントとのやり取り(ファイルからの読み書き)は通常、ElementTreeレベルで行われます。一方、単一のXML要素とそのサブ要素とのやり取りはElementレベルで行われます。

以下に、XMLのパースの基本的な手順を示します:

import xml.etree.ElementTree as ET

# ファイルからパースする場合
tree = ET.parse('country_data.xml')
root = tree.getroot()

# 文字列からパースする場合
root = ET.fromstring(country_data_as_string)

fromstring()関数は、文字列から直接Element(パースされたツリーのルート要素)を生成します。他のパース関数はElementTreeを生成することもあります。

Elementは、タグと属性の辞書を持っています:

>>> root.tag
'data'
>>> root.attrib
{}

また、子ノードを持っており、これらの子ノードをイテレートすることができます:

>>> for child in root:
...     print(child.tag, child.attrib)
...
country {'name': 'Liechtenstein'}
country {'name': 'Singapore'}
country {'name': 'Panama'}

子ノードはネストされており、インデックスを使用して特定の子ノードにアクセスすることができます:

>>> root[0][1].text
'2008'

以上が、Pythonのxml.etree.ElementTreeモジュールを使用してXMLをパースする基本的な方法です。詳細な情報や使用例については、公式ドキュメンテーションを参照してください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です