我如何在XML中跳过&符号,以便将它们呈现为HTML中的实体?

我有一些XML文本,我希望在HTML页面中呈现。 这个文本包含了一个&符号,我想用它的实体表示来渲染: &

如何在源XML中转义这个&符号? 我尝试& ,但是这被解码为实际的符号字符( & ),这在HTML中是无效的 。

所以我想逃避它,它会被渲染为& 在使用XML输出的网页中。

当你的XML包含& ,这将导致文字&

当你在HTML中使用它时,它将被渲染为&

根据XML 1.0规范的§2.4 ,您应该能够使用&

我尝试& 但这是不允许的。

你确定这不是一个不同的问题? XML明确地将其定义为逃避&符号的方式。

“&”字符本身就是XML中的转义字符,因此解决方法是将其与“&”的Unicode十进制等效string连接起来,从而确保没有XMLparsing错误。 也就是说,将字符'&'replace为' & ”。

CDATA标签?

  <![CDATA[ This is some text with ampersands & other funny characters. >> ]]> 

&amp; 应该工作得很好,维基百科在XML中有一个预定义的实体列表 。

在我的情况下,我不得不将其更改为%26

我需要逃避&在一个URL。 所以&amp; 没有为我工作。 urlencode函数将更改为%26 。 这种方式既不XML或浏览器的URL机制抱怨的URL。

我已经试过了,但是没有奏效。 基于Wim ten Brink的回答,我尝试了&amp; amp;它工作。

我的一位开发人员build议我使用&#x26; 而且不pipe它可以渲染多less次都能工作。

如何使用unicode \u0026 ? 适用于我的android的XML文件。 如果出现问题,有人让我知道。

<xsl:text disable-output-escaping="yes">&amp;&nbsp;</xsl:text>会做的。

&amp; 是在XML文档的大多数部分中表示和号的方式。

如果你希望在HTML中显示XML,你需要首先创build正确编码的XML(这涉及到改变&amp; ), 然后使用它来创build正确编码的HTML(其涉及再次改变&amp; )。 这导致:

 &amp;amp; 

有关XML编码的更全面的解释,请参阅:

我需要在XML文档中转义哪些字符?

考虑一下你的XML如下所示。

 <Employees Id="1" Name="ABC"> <Query> SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF' <Query> </Employees> 

您不能直接使用<> ,因为它会引发错误。 在这种情况下,您可以使用&#60;&#62; 取而代之。

 <Employees Id="1" Name="ABC"> <Query> SELECT * FROM EMP WHERE ID=1 AND RES &#60;&#62; 'GCF' <Query> </Employees> 

点击这里查看所有的代码。

一个相关的问题是如何在XML元素内容包含和符时编码 – 如果XML是用GET操作提交的URI的一部分。 (撇开这样的API的智慧 – 这是我今天不得不面对的。)我尝试了上面提到的所有事情,唯一实际工作的是%26amp; 需要使用%26来对XML编码中的第一个字符进行url编码。 amp; 之后需要%26 ,因为URI的XML部分被加载到XML文档服务器端。 所以在这个有趣的场景中,有必要把这两种编码方法结合在一起。