使用WriteXml方法可将DataTable直接转换为XML,支持输出到文件或字符串,自动包含表结构和数据。通过XmlWriteMode可控制是否包含架构信息,DataSet还可批量导出多表。

在C#中,将DataTable转换为XML格式非常简单,.NET框架已经内置了相关方法,可以直接导出数据为XML字符串或保存到文件。下面介绍几种常用的方法。
使用WriteXml方法直接生成XML
DataTable类提供了WriteXml方法,可以将表结构和数据一起输出为XML格式。
- 支持输出到文件、Stream、TextWriter等目标位置
- 自动包含表名、列定义和数据行
- 无需手动拼接XML字符串,避免格式错误
示例代码:
DataTable dt = new DataTable("Users");
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Rows.Add(1, "张三");
dt.Rows.Add(2, "李四");
// 输出到XML文件
dt.WriteXml("users.xml");
// 或输出为字符串
using (StringWriter sw = new StringWriter())
{
dt.WriteXml(sw);
string xmlContent = sw.ToString();
Console.WriteLine(xmlContent);
}
控制XML输出格式
如果只需要数据内容,不需要架构信息(如列类型),可以通过设置参数来调整输出方式。
-
WriteXmlMode.IgnoreSchema:只输出数据,不包含schema -
WriteXmlMode.WriteSchema:包含数据表结构(默认)
示例:仅输出数据内容
using (StringWriter sw = new StringWriter())
{
dt.WriteXml(sw, XmlWriteMode.IgnoreSchema);
string xmlDataOnly = sw.ToString();
}
从DataSet中导出多个表
如果你有多个DataTable放在一个DataSet中,也可以一次性导出所有表的XML。
- 保持多表关系结构
- 适合需要整体导出场景
示例:
DataSet ds = new DataSet("MyData");
ds.Tables.Add(dt.Copy());
ds.WriteXml("alldata.xml");
基本上就这些。利用WriteXml方法,你可以快速实现DataTable到XML的转换,无论是用于配置保存、数据交换还是接口传输都非常实用。










