< | -> | < |
> | -> | > |
" | -> | " |
' | -> | ' |
& | -> | & |
1. 利用string.Replace() 五次替换
string
xml
=
"
<node>it's my \"node\" & i like it<node>
"
;
encodedXml = xml.Replace( " & " , " & " ).Replace( " < " , " < " ).Replace( " > " , " > " ).Replace( " \" " , " " " ).Replace( " ' " , " ' " );
// RESULT: <node>it's my "node" & i like it<node>
encodedXml = xml.Replace( " & " , " & " ).Replace( " < " , " < " ).Replace( " > " , " > " ).Replace( " \" " , " " " ).Replace( " ' " , " ' " );
// RESULT: <node>it's my "node" & i like it<node>
2. 利用System.Web.HttpUtility.HtmlEncode() 方便
string
xml
=
"
<node>it's my \"node\" & i like it<node>
"
;
string encodedXml = HttpUtility.HtmlEncode(xml);
// RESULT: <node>it's my "node" & i like it<node>
string encodedXml = HttpUtility.HtmlEncode(xml);
// RESULT: <node>it's my "node" & i like it<node>
3. 利用System.Security.SecurityElement.Escape() 不常用
string
xml
=
"
<node>it's my \"node\" & i like it<node>
"
;
string encodedXml = System.Security.SecurityElement.Escape(xml);
// RESULT: <node>it's my "node" & i like it<node>
string encodedXml = System.Security.SecurityElement.Escape(xml);
// RESULT: <node>it's my "node" & i like it<node>
4. 利用 System.Xml.XmlTextWriter
string
xml
=
"
<node>it's my \"node\" & i like it<node>
"
;
using (XmlTextWriter xtw = new XmlTextWriter( @" c:\xmlTest.xml " , Encoding.Unicode))
{
xtw.WriteStartElement( " xmlEncodeTest " );
xtw.WriteAttributeString( " testAttribute " , xml);
xtw.WriteString(xml);
xtw.WriteEndElement();
}
// RESULT:
/*
<xmlEncodeTest testAttribute="<node>it's my "node" & i like it<node>">
<node>it's my "node" & i like it<node>
</xmlEncodeTest>
*/
using (XmlTextWriter xtw = new XmlTextWriter( @" c:\xmlTest.xml " , Encoding.Unicode))
{
xtw.WriteStartElement( " xmlEncodeTest " );
xtw.WriteAttributeString( " testAttribute " , xml);
xtw.WriteString(xml);
xtw.WriteEndElement();
}
// RESULT:
/*
<xmlEncodeTest testAttribute="<node>it's my "node" & i like it<node>">
<node>it's my "node" & i like it<node>
</xmlEncodeTest>
*/