PythonでXMLドキュメントの作成

C#言語を使ったXMLドキュメントの作成は、「DOMの機能とLINQ to XMLによるXML作成」で行いましたが、今回はxml.etree.ElementTreeライブラリを使用して、Python言語でXMLドキュメントを作成します。

xml.etree.ElementTreeライブラリは別途インストールする必要がありません。xml.etree.ElementTreeライブラリの仕様については、「xml.etree.ElementTree — ElementTree XML API」を参照してください。

XMLドキュメント作成プログラムの作成

xml.etree.ElementTreeライブラリを使用してXMLドキュメント作成プログラム「xmltest.py」を作成します。

  • 4行目で、Elementメソッドを使って、要素「data」を作成します。{}で囲むことにより属性名を定義します。
  • 5行目で、SubElementメソッドを使って、子要素「country 」を作成します。
  • 6行目で、子要素「country 」のテキストを作成します。
  • 10行目で、setメソッドを使って、子要素「rank」の属性名を定義します。
  • 14行目で、子要素「neighbor」の子要素「name 」を作成します。
  • 17行目で、dumpメソッドを使って、作成したXMLドキュメントを表示します。

xmltest.py

# -*- coding: utf-8 -*-
from xml.etree.ElementTree import *
def main():
    data = Element('data',{'version':'1.0' ,'encoding':'utf-8'})
    country = SubElement(data, 'country')
    country.text = "Liechtenstein"
    
    rank = SubElement(data, 'rank')
    rank.text = "2"
    rank.set('updated', 'yes')
    year = SubElement(data, 'year')
    year.text = "2019"
    neighbor = SubElement(data, 'neighbor')
    name = SubElement(neighbor, 'name')
    name.text = "Austria"

    dump (data)
  
if __name__ == '__main__':
    main()        

XMLドキュメント作成プログラムの実行

次のコマンドで、XMLドキュメント作成プログラム「xmltest.py」を実行します。実行結果を次に示します。

$ python3 xmltest.py
<data encoding="utf-8" version="1.0"><country>Liechtenstein<country><rank updated="yes">2</rank><year>2019</year><neighbor><name>Austria</name></neighbor></data>