我如何在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. >> ]]>
&
应该工作得很好,维基百科在XML中有一个预定义的实体列表 。
在我的情况下,我不得不将其更改为%26
。
我需要逃避&
在一个URL。 所以&
没有为我工作。 urlencode函数将更改为%26
。 这种方式既不XML或浏览器的URL机制抱怨的URL。
我已经试过了,但是没有奏效。 基于Wim ten Brink的回答,我尝试了&amp; amp;它工作。
我的一位开发人员build议我使用&#x26; 而且不pipe它可以渲染多less次都能工作。
如何使用unicode \u0026
? 适用于我的android的XML文件。 如果出现问题,有人让我知道。
<xsl:text disable-output-escaping="yes">& </xsl:text>
会做的。
&
是在XML文档的大多数部分中表示和号的方式。
如果你希望在HTML中显示XML,你需要首先创build正确编码的XML(这涉及到改变&
), 然后使用它来创build正确编码的HTML(其涉及再次改变&
)。 这导致:
&amp;
有关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>
点击这里查看所有的代码。
一个相关的问题是如何在XML元素内容包含和符时编码 – 如果XML是用GET操作提交的URI的一部分。 (撇开这样的API的智慧 – 这是我今天不得不面对的。)我尝试了上面提到的所有事情,唯一实际工作的是%26amp;
需要使用%26
来对XML编码中的第一个字符进行url编码。 amp;
之后需要%26
,因为URI的XML部分被加载到XML文档服务器端。 所以在这个有趣的场景中,有必要把这两种编码方法结合在一起。