既存のxmlデータに要素を追加するテストをしたら、とても苦戦した。
後のために、解消方法をメモしておく。
1.既存のxmlデータ
下図のような簡単なもの。
2.追加するデータ
次の2つの要素を最後に追加する。
・<population>25000</population>
・<population2>25000</population2>
3.テストプログラム
(1)普通に追加して書き込む。
(A)プログラムソース
(B)処理結果
下図のように追加した要素が1行になり、改行が無いために見にくい。これでは、
900ケもあるデータを追加したら、とても見辛くて使い物にならない。
(2)追加して後で、整形の指示をして書き込む。
(A)プログラムソース
上記(1)のwrightの代わりに、minidomの機能で改行の指示をして書き込む(下図の赤枠)。
(B)処理結果
下図のように既存の各データに不必要な改行コードが2ケ追加され、見にくい。
(3)要素を一旦文字列に変換し、改行コードを挿入し、その後に要素に戻してから書き込む。
WEBで調べても解消方法が見当たらないので、自分で試行錯誤した。とりあえず、
文字列にすれば、正規表現を使って改行コードを追加することは簡単である。
(A)プログラムソース
下図の16~24行目が追加したコードである。
(B)処理結果
下図のように期待したように追加できた。
<個人的な感想>
単純な要素の追加に、こんなに苦戦するとは思わなかった・・・。
pythonはxmlの処理が得意ではないのかもしれない。