三日月館【別館】開発・制作Tips集
[Python] ElementTreeで作成したXMLの改行やインデントをコントロールしてファイルに書き出す
最終更新:
fumiduki1985
-
view
xml.etree.ElementTreeモジュールでXMLドキュメントを作成すると、改行やインデントのコントロールができない。
しかし、書き出し時のみxml.dom.minidomモジュールを介してしまえば(文字列パースの負荷があるものの)コントロールすることが可能。
しかし、書き出し時のみ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()
