在 XML 中转义 & 符号

escaping ampersands in XML

我知道 XML 中的某些字符需要转义,& 符号就是其中之一。

据此,需要转义的字符只有5个: What characters do I need to escape in XML documents?

我的问题是,如果您有一个和号,但后面没有跟其中一个,这是否意味着 XML 无效?

我问的原因是因为我使用的网络服务会返回以下内容:

<blah>&#4;</blah>

我正在尝试确定它是有效还是无效 XML。如果无效,我会要求他们修复它。如果它有效,那么我的 php 代码没有正确处理它,我需要修复它。

根据 w3schools 验证 (http://www.w3schools.com/xml/xml_validator.asp),它无效,但我只是想确定一下。

& 符号也可以是 numeric character reference 的一部分,但 XML 中 不允许 允许该特定字符 (&#4;):

Character Range

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

小注:你的意思是格式正确,而不是有效。参见 Well-formed vs Valid XML.