大きなXMLファイル(DTDで定義されたエンティティを含む)をステップスルーする簡単なコードがあります。
from lxml import etree
tree = etree.parse(
file('t.xml', 'r'), etree.XMLParser(dtd_validation=False, load_dtd=True))
for e in tree.iter('bla'):
process(e) # whatever to be done with it
これは、プレーンXML入力に適しています。
残念ながら、iter
ジェネレーターは、コロンが内部にあるタグ(名前空間プレフィックス)に対しては何も生成しません。名前空間はどこにも定義されておらず、実際私はそれを気にしません。要素を繰り返し処理したいだけです。
これを行う簡単な方法はありますか?