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

[Python] ElementTreeで作成したXMLの改行やインデントをコントロールしてファイルに書き出す

最終更新:

fumiduki1985

- view
管理者のみ編集可
xml.etree.ElementTreeモジュールでXMLドキュメントを作成すると、改行やインデントのコントロールができない。
しかし、書き出し時のみxml.dom.minidomモジュールを介してしまえば(文字列パースの負荷があるものの)コントロールすることが可能。

記述例:
import xml.etree.ElementTree as ET
import xml.dom.minidom as md

xmlRoot = ET.Element('root')
# ElementTreeでXMLを作成

# 文字列パースを介してminidomへ移す
document = md.parseString(ET.tostring(xmlRoot, 'utf-8')

file = open('test.xml', 'w')
# エンコーディング、改行、全体のインデント、子要素の追加インデントを設定しつつファイルへ書き出し
document.writexml(file, encoding='utf-8', newl='\n', indent='', addindent='  ')
file.close()


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

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