How can I escape double quotes in XML attributes values?
From the following trials
<tag attr="\"">
<tag attr="<![CDATA["]]>">
<tag attr='"开发者_运维技巧'>
Only the last one works for an XML parser that I'm using here. Is there an alternative?
You can use "
From the XML specification:
To allow attribute values to contain both single and double quotes, the apostrophe or single-quote character (') may be represented as "'", and the double-quote character (") as """.
A double quote character ("
) can be escaped as "
, but here's the rest of the story...
Double quote character must be escaped in this context:
In XML attributes delimited by double quotes:
<EscapeNeeded name="Pete "Maverick" 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'/>
Similarly, (
'
) require no escaping if ("
) are used for the attribute value delimiters:<NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>
See also
- Simplified XML Escaping
The String conversion page on the Coder's Toolbox site is handy for encoding more than a small amount of HTML or XML code for inclusion as a value in an XML element.
精彩评论