簡體   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