リンク

2017年6月27日火曜日

pythonでXMLファイルを操作する

今回はpythonからXMLファイルを開き、情報を取得&編集する方法をご紹介します。

環境
  • macOS Sierra 10.12.5
  • python 3.4

    モジュールのインストール
    今回使用するのは「xmlモジュール」です。
    これは標準モジュールなので、意識して削除していない限りインストールせずに使用することができます。


    XMLファイル
    今回はサンプルとして、下記の内容が記述されたXMLファイルを使用します
    <?xml version='1.0' encoding='utf-8'?>
    <root>
        <dir>C:\Bridge Software</dir>
        <class>
            <point>50</point>
            <name>Bridge</name>
        </class>
        <class>
            <point>100</point>
            <name>soft</name>
        </class>
        <class>
            <point>150</point>
            <name>ware</name>
        </class>
        <change>999</change>
    </root>

    pythonスクリプト(読み込み)
    ここでは例として、XMLファイル内から「dir」タグの内容と「name」タグの内容を取得します。
    # -*- coding: UTF-8 -*-
    
    # モジュールのインポート
    import xml.etree.ElementTree as ET
    
    # xmlファイルの読み込み
    tree = ET.parse('test.xml')
    
    # dirタグ
    dir_text = tree.find('dir').text
    print(dir_text)
    
    # nameタグ
    names = tree.findall('class/name')
    for name in names:
        print(name.text)

    実行結果
    ちゃんと読み取れました。



    pythonスクリプト(書き込み)
    ここでは例として「change」タグの内容を書き換えます。
    # -*- coding: UTF-8 -*-
    
    # モジュールのインポート
    import xml.etree.ElementTree as ET
    
    # xmlファイルの読み込み
    tree = ET.parse('test.xml')
    
    # 特定のタグの値を変更
    new_change = tree.find('change')
    new_change.text = "新しい値"
    
    # 上書き保存
    tree.write('test.xml', 'utf-8', True)

    実行結果
    ちゃんと値が変更されました。


    まとめ
    XMLファイルはデスクトップ・アプリケーションなどで設定情報を保存しておくのによく使用されるイメージがあります。
    (最近はJSONファイルに押され気味ですが、、、)

    0 件のコメント:

    コメントを投稿