我需要解析一个编码为“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 ü
无论如何我可以解决这个问题吗?我用谷歌搜索了很多解决方案,但似乎没有一个直接解决这个问题。