我正在使用 Pythonxml.etree.ElementTree对文件进行一些 XML 解析。但是,我在文档中途收到此错误:
xml.parsers.expat.ExpatError: not well-formed (invalid token): line X, column Y
因此,我转到 vim 中的 X 行 Y 列,我看到一个带有红色背景突出显示的与号 (&)。这是什么意思?
它前面的两个字符也是>>,所以也许有什么特别之处>>&?
有人知道怎么修这个东西吗?
& 是 XML 中的一个特殊字符,用于字符实体。如果您的 XML 本身有 & 坐在那里,而不是像 or 之类的实体的一部分&,ѐ那么 XML 是无效的。
您可以使用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 &
我通过使用yattag来解决它
from yattag import indent
print indent(xml_string.encode('utf-8'))