【Python】既存のxmlデータに要素を追加する

 既存の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の処理が得意ではないのかもしれない。

 

<リンク>

ブログのトップページは、こちら

バタイユゲーム情報班のホームページは、こちら