XML文書の読み書き

まず、XML文書(well-formed document)の定義を確認した。

  • 複数の要素から成る。
  • タグに使う要素名は自由に決められる。
  • 要素の中に他の要素が入る構造となる。
  • 本体は単一のルート要素の中になければならない。
  • 要素には属性を付けることができる。
  • データを属性として表すか要素として表すかはデータの用途に従って判断する。

ここで使おうとしているXML文書は、アプリケーションのパラメータ値を一時的に保存するものであるので、複雑なXML文書である必要はない。今回はこれらの定義のみを頭に入れて、サンプルのXML文書を作成した。
パネルが2つあって、それぞれで定義される2つのパラメータとその値を保存する文書を以下のようにすればいいのではないかと思う。ファイル名はSample.xmlとする。

<?xml version="1.0" encoding="UTF-8" ?>
<pre-process>
  <panel1 ptype="hoge">
      <param1>0.3</param1>
      <param2>1.3</param2>
  </panel1>
  <panel2 ptype="huga">
      <param3>0.2</param3>
      <param4>1.8</param4>
  </panel2>
</pre-process>

このファイルを読み込む場合は、次のようにする。

from xml.etree.ElementTree import ElementTree

e = ElementTree(file="Sample.xml")
root = e.getroot()
paradic = {}

for item in root.getiterator():
    if item.tag.find("param") != -1:
        paradic[item.tag] = item.text
print paradic

こうすれば読み込んだパラメータ名とその値を辞書に収めることができる。
print文の実行結果は、次の通り。これでパースはOK。

{'param4': '1.8', 'param3': '0.2', 'param2': '1.3', 'param1': '0.3'}

次は書き込み。辞書からXML文書を作成するのだが、すぐにはよく分からない。