You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET新版XmlDocument.InnerText替代方案:完整文档转字符串

解决XmlDocument获取带格式整文档字符串的问题

我懂你现在的困扰——旧版.NET里调用XmlDocument.InnerText就能拿到带换行、缩进的完整XML字符串,但新版框架里这个方法在XmlDocument对象上被停用了,用InnerXml又只能得到没有格式的紧凑字符串,确实有点闹心。

其实最简的解决方案是借助XmlWriter来生成带格式的XML输出,具体操作很清晰:

  • 先创建XmlWriterSettings对象,配置缩进、换行等格式参数
  • 用XmlWriter把整个XmlDocument写入到StringWriter中
  • 最后从StringWriter里取出格式化后的字符串

给你一段现成的可直接用的代码:

using System.Xml;
using System.IO;

public string GetFormattedXmlString(XmlDocument xmlDoc)
{
    // 配置XML输出格式:开启缩进、设置缩进字符和换行符
    var writerSettings = new XmlWriterSettings
    {
        Indent = true,
        IndentChars = "  ", // 也可以换成"\t"用制表符缩进
        NewLineChars = Environment.NewLine,
        OmitXmlDeclaration = false // 如果不需要开头的<?xml...?>声明,改成true就行
    };

    using (var stringWriter = new StringWriter())
    using (var xmlWriter = XmlWriter.Create(stringWriter, writerSettings))
    {
        xmlDoc.WriteTo(xmlWriter);
        xmlWriter.Flush();
        return stringWriter.ToString();
    }
}

这个方法完全能替代你之前用XmlDocument.InnerText实现的效果,而且还能灵活调整格式(比如修改缩进字符、是否保留XML声明等)。

另外补充一句:InnerXml本身的设计就是返回无格式的节点XML内容,所以它不会处理换行和缩进,而XmlWriter是官方推荐用来控制XML输出格式的工具,这也是最合规的替代方案哦。

内容的提问来源于stack exchange,提问作者Belgin Fish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:18:47