ElementTree使ってみた

意外と情報収集に手間取ったのでメモ。
2.5から標準になったけど、それ以前とモジュールの場所が変わったぽい。
とりあえずpython2.5のimportはこう。

from xml.etree.ElementTree import ElementTree


普通の使い方はこんな感じ。

dom=ElementTree(file=open(filepath))
print dom.getroot()
print dom.findall('.//item')


若干普通じゃない使い方その1。ファイルからじゃなくて文字列を読ませてみる。

import StringIO
dom=ElementTree(file=StringIO.StringIO('text'))


応用してその2。SJISXMLを無理やり読ます。

io=StringIO.StringIO(codecs.open(filepath, 'r', 'shiftjis').read().replace('Shift_JIS', 'utf-8', 1))
dom=ElementTree(file=io)


これでやりたいことはできたのであった。