Созданный в.NET функционируют для невыхода из символов в потоке XML?

Так, у меня есть некоторые данные в форме:

<foo><bar>test</bar></foo>

Что классы/функции.NET были бы я хотеть использовать, чтобы преобразовать это во что-то симпатичное и выписать его в выглядящий примерно так файл:

<foo>
   <bar>
       test
   </bar>
</foo>

Будьте конкретны по поводу функций, и классы, не только "используют System.XML". Кажется, существует много различных способов сделать вещи в.NET с помощью XML: (

Спасибо

12
задан Polaris878 4 February 2010 в 21:47
поделиться

3 ответа

Используя класс System.Xml.XmlDocument....

Dim Val As String = "&lt;foo&gt;&lt;bar&gt;test&lt;/bar&gt;&lt;/foo&gt;"
Dim Xml As String = HttpUtility.HtmlDecode(Val)

Dim Doc As New XmlDocument()
Doc.LoadXml(Xml)

Dim Writer As New StringWriter()
Doc.Save(Writer)

Console.Write(Writer.ToString())
16
ответ дан 2 December 2019 в 05:54
поделиться

Вот тот, который я использую, передайте строку Xml, установите для ToXml значение true, если вы хотите преобразовать строку, содержащую " "в собственный xml-эквивалент:" #lt; foo / # gt; #lt; bar # gt; " - замените хеш на амперсанд , поскольку этот редактор продолжает его экранировать ... аналогично, если ToXml ложно, он преобразует строку, содержащую "#lt; foo / # gt ; #lt; bar # gt; " ( замените хеш амперсандом ) на « »

string XmlConvert(string sXml, bool ToXml){
    string sConvertd = string.Empty;
    if (ToXml){
       sConvertd = sXml.Replace("<", "#lt;").Replace(">", "#gt;").Replace("&", "#amp;");
    }else{
       sConvertd = sXml.Replace("#lt;", "<").Replace("#gt;", ">").Replace("#amp;", "&");
    }
    return sConvertd;
}

( замените хеш амперсандом , поскольку этот редактор продолжает экранировать его в пре теги)

Изменить: Спасибо технофилу за указание на очевидное, но это предназначено для охвата только тегов XML. В этом суть функции, которую можно легко расширить, чтобы охватить другие теги XML, и не стесняйтесь добавлять больше, что я, возможно, пропустил! Ваше здоровье! :)

-4
ответ дан 2 December 2019 в 05:54
поделиться

можно использовать этот код.

string p = "&lt;foo&gt;&lt;bar&gt;test&lt;/bar&gt;&lt;/foo&gt;";
Console.WriteLine(System.Web.HttpUtility.HtmlDecode(p));
8
ответ дан 2 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: