繁体   English   中英

带有无效令牌的 Python XML 解析错误

[英]Python XML Parse errors with Invalid Token

我正在将代码从 Python 2.7 移动到 Python 3.10。 代码的一部分创建了经过“美化”并写入文件的 XML。 但是在 Python 3.x 中解析会引发错误。 在一种情况下,问题似乎与编码的破折号字符有关。

<?xml version='1.0' encoding='utf8'?>
<properties>
    <entry key="name">AB&amp;R - RFA #3 \xe2\x80\x93 Alignment</entry>
</properties>

解析如下:

xml_parsed = xml.dom.minidom.parseString(xml_string)
return xml_parsed.toprettyxml("    ", "\n")

抛出的错误是:

not well-formed (invalid token): line 2

我认为 Python 2.7 不会出现这个问题。 这里有一个关于 en-dash 的很好的描述(尽管我认为我的问题不仅限于 en-dash)。

可以做些什么来解决这个问题?

我最初对问题的描述是不正确的。 XML 文本存储为字节字符串。 以下代码对我有用:

    xml_string = xml_string.decode("utf-8")
    xml_parsed = xml.dom.minidom.parseString(xml_string)
    return xml_parsed.toprettyxml("    ", "\n")

我不需要在 Python 2.7 中进行 utf-8 解码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM