python中的XML解析:expaterror格式不正确

时间:2012-07-11 23:28:03

标签: python xml parsing

我正在使用Python的xml.etree.ElementTree对文件进行一些XML解析。但是,我在文档的中途收到了这个错误:

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

所以我在vim的第X行,第Y列,我看到一个带有红色背景突出显示的&符号(&)。这是什么意思?

前面的两个字符也是>>,所以也许>>&有什么特别之处?

任何人都知道如何解决这个问题?

3 个答案:

答案 0 :(得分:16)

&是XML中的特殊字符,用于字符实体。如果你的XML有&单独坐在那里,而不是&ѐ之类的实体的一部分,那么XML就是无效的。

答案 1 :(得分:0)

您可以使用 xml 模块

中的转义功能。
from xml.sax.saxutils import escape

my_string = "Some string with an &"

# If the string contains &, <, or > they will be converted.
print(escape(my_string))

# Above will return: Some string with an &amp;

参考:Escaping strings for use in XML

答案 2 :(得分:-1)

我使用yattag代替

解决了这个问题
from yattag import indent
print indent(xml_string.encode('utf-8'))