Pythonには、XMLを処理するためのいくつかのモジュールがあります。これらのモジュールはxmlパッケージにまとめられています。xmlパッケージのモジュールは、少なくとも1つのSAX準拠のXMLパーサーが利用可能であることを必要とします。ExpatパーサーはPythonに含まれているため、xml.parsers.expatモジュールは常に利用可能です。
Pythonのxml.etree.ElementTreeモジュールは、XMLデータを解析し作成するためのシンプルで効率的なAPIを実装しています。このモジュールは、利用可能な場合は高速な実装を使用します。
以下に、xml.etree.ElementTreeを使用してXMLを解析する基本的なコードを示します。
import xml.etree.ElementTree as ET
# ファイルからXMLデータをインポート
tree = ET.parse('country_data.xml')
root = tree.getroot()
# または、文字列から直接XMLをインポート
root = ET.fromstring(country_data_as_string)
# rootはElementで、タグと属性の辞書を持っています
print(root.tag, root.attrib)
# rootの子ノードには、以下のようにしてアクセスできます
for child in root:
print(child.tag, child.attrib)
# 子ノードはネストされており、インデックスを使用して特定の子ノードにアクセスできます
print(root[0][1].text)
このコードでは、まずxml.etree.ElementTreeモジュールをインポートし、ETという別名を付けています。次に、parse関数を使用してXMLデータを読み込み、そのルート要素を取得しています。また、fromstring関数を使用して、文字列から直接XMLデータを解析することもできます。
このように、Pythonでは標準ライブラリの一部としてXMLパーサーが提供されており、XMLデータの解析と作成が容易に行えます。PythonでXMLを扱う際には、これらのモジュールを活用すると良いでしょう。