如何在XML中转义符号,使它们在HTML中呈现为实体?
我希望在HTML页面中呈现一些XML文本。此文本包含一个符号,我希望在其实体表示中呈现该符号:如何在XML中转义符号,使它们在HTML中呈现为实体?,html,xml,escaping,ampersand,Html,Xml,Escaping,Ampersand,我希望在HTML页面中呈现一些XML文本。此文本包含一个符号,我希望在其实体表示中呈现该符号:& 如何在源XML中转义这个符号?我试过&,但这被解码为实际的符号和字符(&),即 因此,我希望以这样一种方式对其进行转义,即它将被呈现为& 根据,您应该能够使用& 我试过,;但这是不允许的 你确定这不是一个不同的问题吗?XML明确将其定义为转义符号的方法。&应该可以正常工作,Wikipedia有一个。使用CDATA标记: <![CDATA[ This is
&代码>
如何在源XML中转义这个符号?我试过&代码>,但这被解码为实际的符号和字符(&
),即
因此,我希望以这样一种方式对其进行转义,即它将被呈现为&使用XML输出的网页中的code> 根据,您应该能够使用&代码>
我试过,;但这是不允许的
你确定这不是一个不同的问题吗?XML明确将其定义为转义符号的方法。&代码>应该可以正常工作,Wikipedia有一个。使用CDATA
标记:
<![CDATA[
This is some text with ampersands & other funny characters. >>
]]>
>
]]>
当您的XML包含时;amp代码>,这将产生文本&代码>
当您在HTML中使用它时,它将被呈现为&
字符&
本身就是XML中的转义字符,因此解决方案是将它与&
的Unicode十进制等价物连接起来,从而确保没有XML解析错误。也就是说,将字符&
替换为&代码>
&
就可以了。使用unicode\u0026
怎么样?适用于我的android XML文件。如果出现问题,请有人告诉我。我已经尝试了&,但没有成功。基于Wim ten Brink的回答,我尝试了;amp,它成功了
我的一位开发伙伴建议我使用&;无论渲染多少次,它都能正常工作。在我的情况下,我不得不将其更改为%26
我需要在URL中转义&
。所以&代码>不适合我。
urlencode功能将&
更改为%26
。这样,XML和浏览器URL机制都不会抱怨URL
是在XML文档的大多数部分中表示符号的方法
如果希望在HTML中显示XML,则需要首先创建正确编码的XML(包括将&
更改为&
),然后使用它创建正确编码的HTML(包括再次将&
更改为&
)。这导致:
&amp;
有关XML编码的更详细说明,请参阅:
考虑您的XML是否如下所示
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF'
<Query>
</Employees>
查看所有代码。这是猜测而不是答案。可能是猜测;但这是正确的。CDATA标记允许使用原始的符号和。原始区域的帖子从未明确说明在何处使用了和,CDATA标记不能用于属性值,只能用于标记的实际内容,因此,我之所以包含“?”。这对于描述xml数据也很有用,这个答案在许多其他有关xml呈现的场景中也很有用。对我来说,它在Camel-XML-DSL中真的很有帮助,当我需要用一些XML数据设置正文或某个标题时,Camel-XML解析器忽略了CDATA内容,将其作为字符流读取。如果没有这一点,骆驼引擎将抛出无效的xml结构异常这正是我需要的答案,因为在我的例子中,我不确定xml中可能包含哪些字符,所以我需要转义该部分中的所有内容。是的。但是请注意,OP是关于用XML转义的。在URL中转义是另一个问题。真正的乐趣开始于你有XML的URL,或者URL中的XML片段……我真的更喜欢这个解决方案!也可以使用十六进制表示法:&代码>从逻辑上讲,为什么会这样?这两个字符串都有一个符号AND,包括末尾带有字符代码的符号…@sijpkes,因为这里的符号AND告诉解析器,以下字符用于表示另一个字符,在本例中,它将是一个符号AND。符号在XML中并不“非法”——它只是有一个特殊的含义。它的意思是“在此之后的所有字符,直到你碰到分号为止,都应该翻译成其他字符”。当你有一个符号和时,通常没有描述性字符和尾随分号,解析器会感到困惑。这就是我的答案。增加&;在“我的响应头”的位置中修复了它,并且在响应头上没有显示“与”:DStack溢出太大了。这是一篇几乎有11年历史的帖子,它解决了我的问题。它已经被浏览了69万多次。这在发布时是完全合理的,但是对这个问题的修改(或者澄清)使得它作为一个答案显得毫无意义。一方面,问题中不再出现引用的段落。该问题的最新版本中声称“实际的符号和字符(&)…在HTML中无效”的说法是错误的。事实上,即使是作为正当理由提供的链接问题的公认答案也指出,“HTML5允许您将其保留为不可转义,但仅当以下数据看起来不像有效的字符引用时。”\u
转义在XML中通常没有特殊意义-1.@MarkAmery是的,它们没有特殊的含义,这正是它们工作得这么好的原因——没有什么可解释的,所以也没有什么可出错的。java解释unicode,并按照OP的要求显示一个符号。@ScottBiggs java与OP的问题有什么关系?@ScottBiggs,所以它是离题的。− 1.@ScottBiggs它对你有效,而其他人可能受益,这一事实与此无关;你的答案对所有其他读者来说都是噪音。因为它不处理OP询问的更一般的情况。这不是不分享你的成功。这是关于把它放在属于它的地方。您的贡献可能是有用的,但在这里不是答案。五月
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES <> 'GCF'
<Query>
</Employees>