我希望在HTML页面中呈现一些XML文本。此文本包含一个&符号,我想在其实体表示中呈现:&
。
如何在源XML中转义此&符号?我尝试了&
,但这被解码为实际的&符号(&
),即invalid in HTML。
所以我想以这样的方式转义它,它将在使用XML输出的网页中呈现为&
。
答案 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)
&
应该可以正常使用,维基百科有List of predefined entities in XML。
答案 5 :(得分:10)
在我的情况下,我必须将其更改为%26
。
我需要在网址中转义&
。所以&
对我来说没有用。
urlencode 功能会将&
更改为%26
。这样,XML和浏览器URL机制都没有抱怨URL。
答案 6 :(得分:5)
我试过&amp; amp,但是没用。根据Wim ten Brink的回答,我试过放大器,它起作用了。
我的一位开发人员建议我使用&amp;#x26;无论有多少次呈现,它都能发挥作用。
答案 7 :(得分:4)
&
是在XML文档的大多数部分中表示&符号的方法。
如果要在HTML中显示XML,则需要先创建正确编码的XML(包括将&
更改为&
),然后然后使用它来创建正确编码的HTML(包括再次将&
更改为&
)。结果是:
&amp;
有关XML编码的更全面说明,请参阅:
答案 8 :(得分:3)
如何使用unicode \u0026
?在我的Android XML文件中为我工作。如果出现问题,有人会告诉我。
答案 9 :(得分:2)
<xsl:text disable-output-escaping="yes">& </xsl:text>
可以解决问题。
答案 10 :(得分:0)
考虑您的XML是否如下所示。
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF'
<Query>
</Employees>
您无法直接使用<>
,因为它会引发错误。在这种情况下,您可以使用<>
代替。
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES <> 'GCF'
<Query>
</Employees>
Click here查看所有代码。
答案 11 :(得分:0)
相关问题是当这些内容包含&符时如何编码XML元素内容 - 如果XML是使用GET操作提交的URI的一部分。 (暂且不谈这种API的智慧 - 这是我今天必须处理的事情。)我尝试了上面提到的所有内容,唯一真正有用的是%26amp;
需要%26
URL编码用于&符号的XML编码中的第一个字符。需要amp;
之后的%26
,因为URI的XML部分正在加载到XML文档服务器端。因此,在这个有趣的场景中,有必要将两种编码方法结合在一起。