2011-10-16 37 views
3

无处不在,帖子告诉我用他们的html实体转义xml特殊字符,但我仍然收到XML解析错误。我收到的错误消息是“未识别的实体”,它发生在& amp;和®标记(没有空格)。我该如何解决这个问题,为什么仍然会抛出错误?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> 

回答

11

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

和你的XML将有效

+0

这个修好了!感谢名单! – Stanley

6

XML只有少量的“内置”字符实体名称。 “amp”是其中的一个内置插件,所以你似乎不太可能在那里得到一个错误。但是,“reg”不是内置的。

为了解决这个问题,你既可以使用上进行REG的数字参考,使用实际的字符,或者包括REG实体声明,像这样:

<!ENTITY reg "&#174;"> 

你可以看一下在XHTML DTDs获得HTML实体的完整实体声明。

1

XML只定义了实体&amp;&lt; UND &gt;。除非您以某种方式声明,否则&reg;无效。

1

我到处都看,职位告诉我逃离XML特殊字符的HTML实体

不要。使用XML实体。

我收到的错误消息是“未识别的实体”,它发生在&amp;&reg;标记处。

因为这是XML的一部分,所以您不应该遇到&amp;的问题。您必须使用破碎的解析器。很难说,因为你没有提供任何你用来解析这个的代码。

,另一方面&reg;不应该由一个XML解析器,除非你包括DTD定义它进行解析。使用数字实体或(更好)实际字符和合适的(UTF-8)字符编码。