XmlDocument.InnerText 新 .NET 的替代品

XmlDocument.InnerText Replacement for New .NET

我正在尝试将 XmlDocument 类型的对象转换为字符串。

在 Visual Studio 2010 年,所需要的只是根据文档 here.

调用 XmlDocument.InnerText

在新的 .NET 框架中 XmlDocument.InnerText 已停用,现在根据文档 here.

抛出异常

我会简单地使用 XmlDocument.InnerXml 因为这个 return 是一个字符串,尽管问题是字符串 returned 不包含任何 xml 文档格式(换行符、缩进等)。遗产 XmlDocument.InnerText 做到了 return 所有这一切。

看起来 XmlDocument.InnerText 仍然可用于节点和 XmlElements,尽管我想知道将整个 XmlDocument 作为文本获取的最简单方法是什么。

您可以使用 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)