XMLファイルはアプリケーションの設定ファイルなどによく利用されています。
今回はPythonで「xml.etree.ElementTree」モジュールを使ってXMLファイルを
読み込む方法について解説します。
XMLファイルのサンプル
次のXMLファイルのサンプルを使用して、データの読込みを行います。
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<database>
<dbhost>hostname</dbhost>
<dbname>databasename</dbname>
<dbuser>username</dbuser>
<dbpass>password</dbpass>
</database>
</root>
XMLファイルを読み込む
XMLファイルの読込み手順は次のようになります。
- 「xml.etree.ElementTree」モジュールを読込み
- XMLファイルを読込みルート情報を取得
- データの取得
モジュールの読込み
最初にモジュールの読込みをします。
# モジュール読込み
import xml.etree.ElementTree as ET
XMLファイルを読込みルート情報を取得
XMLファイルを読込みを行いXMLのルート情報を取得します。
# XML読込み、ルート情報を取得
xml_obj =ET.parse('C:\\xml\\sample.xml').getroot()
データを取得する
データを取得して、コンソールへ出力します。
データの取得には「findtext(.//要素名//要素名)//・・・」のように階層を辿って
取得します。
# データの取得
print(xml_obj.findtext('.//database//dbhost'))
print(xml_obj.findtext('.//database//dbname'))
print(xml_obj.findtext('.//database//dbuser'))
print(xml_obj.findtext('.//database//dbpass'))
# 実行結果
hostname
databasename
username
password
コード全体
# モジュール読込み
import xml.etree.ElementTree as ET
# XML読込み、ルート情報を取得
xml_obj =ET.parse('C:\\xml\\sample.xml').getroot()
# データの取得
print(xml_obj.findtext('.//database//dbhost'))
print(xml_obj.findtext('.//database//dbname'))
print(xml_obj.findtext('.//database//dbuser'))
print(xml_obj.findtext('.//database//dbpass'))
まとめ
以上がPythonでXMLファイルの読込みを行う方法になります。
データを取得する時は1つ1つ要素を辿っていくことで取得することができます。
XMLファイルを利用してアプリケーションの設定情報を定義しておくことはよくあると
思うので参考になれば幸いです。