我正在使用Python的xml.etree.ElementTree
对文件进行一些XML解析。但是,我在文档的中途收到了这个错误:
xml.parsers.expat.ExpatError: not well-formed (invalid token): line X, column Y
所以我在vim的第X行,第Y列,我看到一个带有红色背景突出显示的&符号(&)。这是什么意思?
前面的两个字符也是>>
,所以也许>>&
有什么特别之处?
任何人都知道如何解决这个问题?
答案 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 &
答案 2 :(得分:-1)
我使用yattag
代替
from yattag import indent
print indent(xml_string.encode('utf-8'))