Функция XMLEncode в C#

#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-метод, возможно, это может решить вашу проблему.