Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在XML中转义符号,使它们在HTML中呈现为实体?_Html_Xml_Escaping_Ampersand - Fatal编程技术网

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

如何在XML中转义符号,使它们在HTML中呈现为实体?,html,xml,escaping,ampersand,Html,Xml,Escaping,Ampersand,我希望在HTML页面中呈现一些XML文本。此文本包含一个符号,我希望在其实体表示中呈现该符号:& 如何在源XML中转义这个符号?我试过&,但这被解码为实际的符号和字符(&),即 因此,我希望以这样一种方式对其进行转义,即它将被呈现为& 根据,您应该能够使用& 我试过,;但这是不允许的 你确定这不是一个不同的问题吗?XML明确将其定义为转义符号的方法。&应该可以正常工作,Wikipedia有一个。使用CDATA标记: <![CDATA[ This is

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

如何在源XML中转义这个符号?我试过
&,但这被解码为实际的符号和字符(
&
),即

因此,我希望以这样一种方式对其进行转义,即它将被呈现为
&

根据,您应该能够使用
&

我试过,;但这是不允许的


你确定这不是一个不同的问题吗?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;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 &#60;&#62; 'GCF'
  <Query>
</Employees>