如何在XML中转义&符号,以便它们在HTML中呈现为实体?

时间:2009-08-25 14:11:15

标签: html xml

我希望在HTML页面中呈现一些XML文本。此文本包含一个&符号,我想在其实体表示中呈现:&

如何在源XML中转义此&符号?我尝试了&,但这被解码为实际的&符号(&),即invalid in HTML

所以我想以这样的方式转义它,它将在使用XML输出的网页中呈现为&

12 个答案:

答案 0 :(得分:388)

当您的XML包含&时,这将生成文本&

在HTML中使用它时,它将呈现为&

答案 1 :(得分:186)

根据 §2.4 of the XML 1.0 spec ,您应该可以使用&

  

我试过& amp; amp;但这是不允许的。

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

答案 2 :(得分:120)

&字符本身是XML中的转义字符,因此解决方案是将它与&的Unicode十进制等效项连接起来,从而确保没有XML解析错误。也就是说,将字符&替换为 &

答案 3 :(得分:63)

CDATA代码?

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

答案 4 :(得分:41)

&amp;应该可以正常使用,维基百科有List of predefined entities in XML

答案 5 :(得分:10)

在我的情况下,我必须将其更改为%26

我需要在网址中转义&。所以&amp;对我来说没有用。 urlencode 功能会将&更改为%26。这样,XML和浏览器URL机制都没有抱怨URL。

答案 6 :(得分:5)

我试过&amp; amp,但是没用。根据Wim ten Brink的回答,我试过放大器,它起作用了。

我的一位开发人员建议我使用&amp;#x26;无论有多少次呈现,它都能发挥作用。

答案 7 :(得分:4)

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

如果要在HTML中显示XML,则需要先创建正确编码的XML(包括将&更改为&amp;),然后然后使用它来创建正确编码的HTML(包括再次将&更改为&amp;)。结果是:

&amp;amp;

有关XML编码的更全面说明,请参阅:

What characters do I need to escape in XML documents?

答案 8 :(得分:3)

如何使用unicode \u0026?在我的Android XML文件中为我工作。如果出现问题,有人会告诉我。

答案 9 :(得分:2)

<xsl:text disable-output-escaping="yes">&amp;&nbsp;</xsl:text>可以解决问题。

答案 10 :(得分:0)

考虑您的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>

Click here查看所有代码。

答案 11 :(得分:0)

相关问题是当这些内容包含&符时如何编码XML元素内容 - 如果XML是使用GET操作提交的URI的一部分。 (暂且不谈这种API的智慧 - 这是我今天必须处理的事情。)我尝试了上面提到的所有内容,唯一真正有用的是%26amp;需要%26 URL编码用于&符号的XML编码中的第一个字符。需要amp;之后的%26,因为URI的XML部分正在加载到XML文档服务器端。因此,在这个有趣的场景中,有必要将两种编码方法结合在一起。