用"&","®"解析xml,但仍然出错

Sta*_*ley 3 xml parsing special-characters

在我看的每个地方,帖子告诉我用他们的html实体来逃避xml特殊字符,但我仍然得到XML解析错误.我收到的错误信息是"未识别的实体",它出现在& 和® 标记(没有空格).我该如何解决这个问题,为什么这仍然会引发错误?

<?xml version="1.0" encoding="UTF-8"?>
<maps>
    <location id="tx">
        <item label="Lobby &amp; Entrance" xpos="125" ypos="112" />
        <item label="Restaurant &amp; Bar" xpos="186" ypos="59" />
        <item label="Swimming Pool" xpos="183" ypos="189" />
        <item label="Nautilus Gym&reg;" xpos="154" ypos="120" />
    </location>
</maps>
Run Code Online (Sandbox Code Playgroud)

fms*_*msf 12

替换: &reg;by:&#174;&amp;:&#38;

并且您的XML将是有效的


Lau*_*ves 6

XML只有少量的"内置"字符实体名称."amp"是内置插件之一,所以你似乎不太可能在那里遇到错误.但是,"reg"不是内置的.

要解决此问题,您可以在reg的位置使用数字引用,使用实际字符,或者为reg包含实体声明,如下所示:

<!ENTITY reg "&#174;">
Run Code Online (Sandbox Code Playgroud)

您可以查看XHTML DTD以获取HTML实体的完整实体声明集.