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

接下来的试验

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

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

154230 次浏览

你可以使用 &quot;

来自 XML 规范:

允许属性值包含 单引号和双引号 单引号或单引号字符 (’)可以表示为“ & apos;”, 和双引号字符(“)作为 “ & quot;”。

编码工具箱站点上的 字符串转换页面可以方便地编码少量 HTML 或 XML 代码,以便将其作为值包含在 XML 元素中。

双引号字符(") 可以被转义为 &quot;,但下面是故事的其余部分..。

双引号字符 必须的在这个上下文中被转义:

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

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

Double quote character need not be escaped in most contexts:

  • In XML textual content:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
    
  • In XML attributes delimited by single quotes ('):

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

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

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

See also