三日月館【別館】開発・制作Tips集

[Python] ElementTreeによるXML作成チートシート

最終更新:

fumiduki1985

- view
管理者のみ編集可
いずれのコードサンプルも、下記インポートが行われている前提。
import xml.etree.ElementTree as ET

■XML要素の作成
属性無しの要素を作成する。
elem = ET.Element('elementName')

属性を持つ要素を作成する。
attrib引数に属性名とその値の辞書を渡す。
elem = ET.Element('elementName', attrib={'attr1':'1', 'attr2':'2'})

■XML要素に子要素を追加
属性無しの要素を追加する。parentElemは親となるElementオブジェクト。
subElem = ET.SubElement(parentElem, 'subElementName')

属性を持つ要素を追加する。
XML要素作成時と同様にattrib引数を設定する。
subElem = ET.SubElement(parentElem, 'subElementName', attrib={'attr1':'1'})

Elementオブジェクトのappend()メソッドでも可能。
subElem = ET.Element('subElementName')
parentElem.append(subElem)

■ファイルへの書き出し
elemは書き出したいElementオブジェクト。
xml_declaration引数にTrueを設定すると、XMLファイルの先頭行に<?xml ...>のXML宣言行が追加される。
etree = ET.ElementTree(elem)
etree.write('test.xml', encoding='utf-8', xml_declaration=True)

ただし、この方法だとXMLファイルに改行やインデントが入らない。
改行やインデントも制御したい場合は、本wikiの「[Python] ElementTreeで作成したXMLの改行やインデントをコントロールしてファイルに書き出す」という方法があります。


このページのタグ一覧
Python チートシート プログラミング

記事メニュー
ウィキ募集バナー