我有一些XML文本,希望在HTML页面中呈现。这个文本包含一个&号,我想用它的实体表示形式呈现:&。
&
我如何转义这个&在源XML?我尝试了&,但这被解码为实际的&字符(&),这是在HTML中无效。
&
因此,我希望以这样一种方式对它进行转义,使它在使用XML输出的网页中呈现为&。
根据§2.4的XML 1.0规范,您应该能够使用&。
我试过&但这是不允许的。
你确定这不是别的问题吗?XML显式地将此定义为转义&号的方法。
&应该可以正常工作。# EYZ1。
使用CDATA标签:
CDATA
<![CDATA[ This is some text with ampersands & other funny characters. >> ]]>
当您的XML包含&amp;时,这将导致文本&。
&amp;
当您在HTML中使用它时,它将呈现为&。
&字符本身是XML中的转义字符,因此解决方案是将它与与&对应的Unicode十进制字符连接起来,从而确保没有XML解析错误。也就是说,将&字符替换为&。
&
<xsl:text disable-output-escaping="yes">& </xsl:text>就可以了。
<xsl:text disable-output-escaping="yes">& </xsl:text>
我试过了,但没有用。基于听听布林克的回答,我尝试&,它工作。
我的一个开发伙伴建议我使用&不管它被渲染了多少次,这都是有效的。
在我的情况下,我必须把它改为%26。
%26
&是在XML文档的大多数部分中表示&号的方法。
如果您想在HTML中显示XML,首先需要创建正确编码的XML(包括将&更改为&),然后使用然后创建正确编码的HTML(再次涉及将&更改为&)。结果是:
有关XML编码的更详细说明,请参见:
在XML文档中需要转义哪些字符?< / >
考虑一下您的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>
14.1 XML中特殊字符的使用方法有所有的代码。