#c# #vbscript
#c# #vbscript
Вопрос:
Я получил ниже функцию XMLEncode в функции VBScript. Я хочу написать аналогичную функцию в C # 2.0
Function XMLEncode(byVal stringtoencode)
Dim strTemp ' As String
strTemp = stringtoencode
strTemp = Replace( strTemp, chr(38), "amp;amp;" )
strTemp = Replace( strTemp, chr(34), "amp;quot;" )
strTemp = Replace( strTemp, chr(60), "amp;<" )
strTemp = Replace( strTemp, chr(62), "amp;>" )
strTemp = Replace( strTemp, chr(169), "amp;copy;" )
XMLEncode = strTemp
End Function
Пожалуйста, предложите!! есть ли какая-либо встроенная функция в c # или мне нужно написать ту же логику на C#
Ответ №1:
string xml = "<node>it's my "node" amp; 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="amp;<nodeamp;>it's my amp;quot;nodeamp;quot; amp;amp; i like itamp;<nodeamp;>">
amp;<nodeamp;>it's my "node" amp;amp; i like itamp;<nodeamp;>
</xmlEncodeTest>
*/
Комментарии:
1. Что это за БигМайк, я ищу функцию!! Я использую .NET 2.0
2. перейдите по ссылке, есть 4 способа добиться экранирования XML. От простого способа (экранирование символов вручную с помощью замены строк) до сложного решения (с использованием XmlTextWriter), проходящего через некоторые утилиты кодирования.
Ответ №2:
Ищите HttpServerUtility.HtmlEncode-метод, возможно, это может решить вашу проблему.