Python

PythonでXMLファイルを読み込む方法

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ファイルの読込み手順は次のようになります。

  1. 「xml.etree.ElementTree」モジュールを読込み
  2. XMLファイルを読込みルート情報を取得
  3. データの取得

モジュールの読込み

最初にモジュールの読込みをします。

# モジュール読込み
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ファイルを利用してアプリケーションの設定情報を定義しておくことはよくあると

思うので参考になれば幸いです。