XML验证错误:Char 0x0超出允许范围



我如何处理无效字符,以便能够在Python中解析数据?

我目前使用REST API从生成XML格式数据的源获取数据。但是XML数据包含这些字符:¿¿

当尝试验证数据时,我得到的错误在这一点上说:

Char 0x0超出允许范围

因此我无法解析此数据。我不知道如何对这些数据进行编码。我该怎么做才能解决这个问题?

0x0(又名NUL)是在XML中不允许的字符:

[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

因此,您的数据不是XML,任何符合XML的处理器都必须报告一个错误,例如您收到的错误。

在与任何XML库一起使用之前,必须通过将其视为文本而不是XML,手动或自动地处理来删除任何非法字符来修复数据。

对于Python,请参见在Python中从字符串中删除控制字符以获取如何从字符串中删除NUL的提示。这必须在将数据作为XML处理之前完成。

最新更新