2011-10-16 54 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)字符編碼。