Мне нужно проанализировать 1,2-гигабайтный XML-файл с кодировкой «ISO-8859-1», и после прочтения нескольких статей в NET кажется, что iterparse ElementTree Python() является предпочтительным для анализа SAX.ElementTree's iterparse() Ошибка синтаксического анализа XML
Я написал очень короткий фрагмент кода, чтобы проверить его, но он вызывает ошибку, которую я не знаю, как решить.
Мой код (Python 2.7):
from xml.etree.ElementTree import iterparse
for (event, node) in iterparse('dblp.xml', events=['start']):
print node.tag
node.clear()
Edit: Ааа, так как файл был действительно большой и лага, я напечатал в XML-строку, и сделал ошибку. Это «& uuml;» без пространства. Прошу прощения за это.
Этот код работает отлично, пока не достигнет строки в файле XML, который выглядит следующим образом:
<Journal>Technical Report 248, ETH Zürich, Dept of Computer Science</Journal>
который я предполагаю, означает Цюрих, но анализатор, кажется, не знают.
Выполнение кода выше дал мне ошибку:
xml.etree.ElementTree.ParseError: undefined entity ü
есть в любом случае я мог бы решить эту проблему? Я разработал множество решений, но никто, похоже, не справляется с этой проблемой напрямую.
Хорошо, у вас есть inconsistancy, что нужно разрешение. В XML есть '& umml', а в ошибке у вас' & uuml'. Если они оба являются '& umml', это потому, что XML недействителен и требует исправления. Если они оба '& uuml', что * есть * определенный объект, то он должен работать. Если они действительно разные, вам нужно предоставить дополнительную информацию о файле. –