「ISO-8859-1」のエンコーディングを持つ 1.2GB の XML ファイルを解析する必要があります。NET に関するいくつかの記事を読んだ後、Python の ElementTree の iterparse() が SAX 解析よりも優先されるようです。
テストするためだけに非常に短いコードを書きましたが、解決方法がわからないエラーが表示されます。
私のコード (Python 2.7):
from xml.etree.ElementTree import iterparse
for (event, node) in iterparse('dblp.xml', events=['start']):
print node.tag
node.clear()
編集:ああ、ファイルが本当に大きくてラグがあったので、XML 行を入力して間違えました。「ü」です。スペースなし。申し訳ありません。
このコードは、XML ファイル内で次のような行に到達するまで正常に機能します。
<Journal>Technical Report 248, ETH Zürich, Dept of Computer Science</Journal>
これはチューリッヒを意味すると思いますが、パーサーはこれを認識していないようです。
上記のコードを実行すると、エラーが発生しました。
xml.etree.ElementTree.ParseError: undefined entity ü
この問題を解決できる方法はありますか? 私はかなりの数の解決策をグーグルで検索しましたが、この問題に直接対処しているようには見えません。