XML-синтаксический анализ в python: expaterror не является корректным

Я использую Python xml.etree.ElementTree для выполнения синтаксического анализа XML в файле. Тем не менее, я получаю эту ошибку в середине документа:

xml.parsers.expat.ExpatError: not well-formed (invalid token): line X, column Y

Итак, я перехожу к строке X, столбцу Y в vim и вижу амперсанд (&) с красным фоном. Что это значит?

Также два предшествующих символа - >>, так что может быть что-то особенное в >>&?

Кто-нибудь знает, как это исправить?

Ответ 1

Символ и является специальным символом в XML, который используется для объектов символов. Если ваш XML есть и сидит сам по себе, а не как часть объекта, такого как & или ѐ или тому подобное, тогда XML недействителен.

Ответ 2

Я решаю его, используя yattag вместо

from yattag import indent
print indent(xml_string.encode('utf-8'))