Замена XmlDocument.InnerText для нового.NET

Я пытаюсь преобразовать объект типа XmlDocument в строку.

В Visual Studio 2010 все, что требовалось, это вызывать XmlDocument.InnerText согласно документации здесь.

В новом.NET Framework XmlDocument.InnerText был прекращен, и теперь выдает исключение согласно документации здесь.

Я бы просто использовал XmlDocument.InnerXml так как это возвращает строку, хотя проблема в том, что возвращаемая строка не содержит форматирование документа XML (переводы строки, отступы и т. д.). Наследие XmlDocument.InnerText вернул все это.

Это выглядит как XmlDocument.InnerText все еще доступен для узлов и XmlElementsхотя мне интересно какой самый простой способ был бы получить весь XmlDocument как текст

1 ответ

Решение

Вы можете сделать это с помощью StringWriter...

    ' build an XML document to test
    Dim x As New System.Text.StringBuilder
    With x
        .AppendLine("<root>")
        .AppendLine("<foo>bar</foo>")
        .AppendLine("</root>")
    End With
    Dim d As New XmlDocument
    d.LoadXml(x.ToString)

    ' create a stringwriter
    Dim sw As New System.IO.StringWriter

    ' write the xml to the stringwriter
    d.Save(sw)

    ' get the contents of the stringwriter with whitespace and line breaks preserved
    Debug.WriteLine(sw.ToString)
Другие вопросы по тегам