大きすぎてメモリに完全にロードできない XML ファイルを解析しているため、 を使用しxml.etree.ElementTree.iterparse
て解析しています。
私が抱えている問題は、イテレータから要素を取得するときに、XML ファイルに存在する一部の情報が ElementTree によって省略されることがあるということです。これは予想される動作ですか?
例
...
<car>
<engine>
<part name="pump"\>
<part name="ECU"\>
</engine>
</car>
...
上記の XML スニペットをxml.etree.ElementTree.iterparse
反復子で解析しているとします。特定のインスタンスで、反復子はelem
XML 要素を指すelement を提供しますcar
。
次に、が実際の XML データxml.etree.ElementTree.dump(elem)
をどの程度うまくキャプチャしているかを確認したところ、次の結果が得られました。elem
<car>
<engine>
<part name="pump"/>
<part/>
</engine>
<car>
part
ここで、2 番目の要素の名前が取得されていないことに注意してください。これはなぜ発生し、どうすれば回避できますか?