如何在XML属性值中转义双引号?

时间:2010-10-18 17:08:28

标签: xml

来自以下试验

<tag attr="\"">
<tag attr="<![CDATA["]]>">
<tag attr='"'>

只有最后一个适用于我在这里使用的XML解析器。 还有其他选择吗?

4 个答案:

答案 0 :(得分:192)

您可以使用&quot;

答案 1 :(得分:50)

来自XML spec

  

允许包含属性值   单引号和双引号都是   撇号或单引号字符   (')可以表示为“&amp;”,   和双引号字符(“)为   “&安培; QUOT;”。

答案 2 :(得分:10)

双引号字符("可以转发为&quot;,但这是故事的其余部分......

双引号字符必须在此上下文中转义:

  • 在由双引号分隔的XML属性中:

    <EscapeNeeded name="Pete &quot;Maverick&quot; Mitchell"/>
    

双引号字符无需在大多数情况下转义

  • 在XML文本内容中:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
    
  • 在由单引号(')分隔的XML属性中:

    <NoEscapeNeeded name='Pete "Maverick" Mitchell'/>
    

    同样,如果(')用于属性值分隔符,则(")不需要转义:

    <NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>
    

另见

答案 3 :(得分:8)

String conversion网站上的Coder's Toolbox页面非常便于编码多个HTML或XML代码,以便作为XML元素中的值包含。