在XML中转义双引号字符

ufu*_*gun 94 xml escaping

在xml中有双引号的转义字符吗?我想写一个标签,如:

<parameter name="Quote = " ">
Run Code Online (Sandbox Code Playgroud)

但如果我把",那就意味着字符串已经结束.我需要这样的东西(c ++):

printf("Quote = \" ");
Run Code Online (Sandbox Code Playgroud)

在双引号之前是否有要写的字符才能逃脱呢?

Ale*_*thi 113

以下是需要在XML中转义的常见字符,以双引号开头:

  1. 双引号(")被转义为&quot;
  2. ampersand(&)被转义为&amp;
  3. 单引号(')被转义为&apos;
  4. 小于(<)被转义为&lt;
  5. 大于(>)被转义为&gt;

  • 不正确; 者; 不是有效的XML字符.它是一个有效的HTML字符 - 它是SGML和XML的SUPERset. (2认同)

Jon*_*eet 27

在这种情况下,其他人已经就如何处理特定的逃逸做出了回答.

更广泛的答案不是试图自己做.使用XML API - 现有几乎所有现代编程平台都有很多可用的API.

XML的API将自动处理这样的事情对你来说,使它成为很多困难出问题.除非您自己编写XML API,否则您很少需要担心这样的细节.

  • 我不能说我同意.认为我们应该如此依赖API来抽象我们甚至不需要理解如何读取和编写XML这一点似乎是愚蠢的.当你提供格式错误的文档并且它爆炸时,Tha XML API可能不会帮助你很多.有人必须修复数据才能加载它. (8认同)
  • 好吧,你必须从某个地方开始.在我们的行业中,我们只是抱怨XML很糟糕,并从JSON等其他东西开始.然后重复该过程. (2认同)

kjh*_*hes 11

一个旧的,经常被问到的问题的新的,改进的答案......

何时以XML格式转义双引号

双引号(")可能会在没有转义的情况下出现:

双引号(")必须转义:

底线

双引号(")必须&quot;仅在非常有限的上下文中以XML格式进行转义.


Mat*_*lls 7

没有这样的转义字符,相反,你可以使用&quot;甚至<![CDATA["]]>代表"字符.


Bra*_*pit 7

如果您只需要快速尝试一些东西,这里有一个快速而肮脏的解决方案。对属性值使用单引号

<parameter name='Quote = " '>
Run Code Online (Sandbox Code Playgroud)