使用XmlDocument结合StringWriter可完整保留XML声明和格式;2. XDocument需调用Save方法配合StringWriter以包含声明;3. 直接File.ReadAllText适用于无需解析的文件读取,但不验证XML合法性。推荐Save+StringWriter方式确保内容完整。
在 C# 中,将 XML 文档完整转换为字符串有几种常用方法,核心是确保保留格式、声明和编码信息。以下是几种可靠的方式:
using System.IO;
using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("example.xml"); // 或 LoadXml("") - test
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
doc.Save(writer);
string xmlString = sb.ToString();
Console.WriteLine(xmlString);
这种方式会包含 XML 声明(如 ),输出完整文档内容。
using System.IO;
using System.Xml.Linq;
XDocument xdoc = XDocument.Load("example.xml");
StringBuilder sb = new StringBuilder();
using (StringWriter writer = new StringWriter(sb))
{
xdoc.Save(writer);
}
string xmlString = sb.ToString();
XDocument.Save() 自动保留 XML 声明和格式。
string xmlString = File.ReadAllText("example.xml");
这种方法最简单,适合不需要解析或修改 XML 的场景,但不会验证是否为合法 XML。
基本上就这些。根据你使用的 XML 类型(XmlDocument 还是 XDocument)选择对应方式,用 StringWriter 是最稳妥的做法。