三日月館【別館】開発・制作Tips集
[Python] ElementTreeによるXML作成チートシート
最終更新:
fumiduki1985
-
view
いずれのコードサンプルも、下記インポートが行われている前提。
import xml.etree.ElementTree as ET
■XML要素の作成
属性無しの要素を作成する。
属性無しの要素を作成する。
elem = ET.Element('elementName')
属性を持つ要素を作成する。
attrib引数に属性名とその値の辞書を渡す。
attrib引数に属性名とその値の辞書を渡す。
elem = ET.Element('elementName', attrib={'attr1':'1', 'attr2':'2'})
■XML要素に子要素を追加
属性無しの要素を追加する。parentElemは親となるElementオブジェクト。
属性無しの要素を追加する。parentElemは親となるElementオブジェクト。
subElem = ET.SubElement(parentElem, 'subElementName')
属性を持つ要素を追加する。
XML要素作成時と同様にattrib引数を設定する。
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宣言行が追加される。
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の改行やインデントをコントロールしてファイルに書き出す」という方法があります。
改行やインデントも制御したい場合は、本wikiの「[Python] ElementTreeで作成したXMLの改行やインデントをコントロールしてファイルに書き出す」という方法があります。