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

在C#中,将DataTable转换为XML格式非常简单,.net框架已经内置了相关方法,可以直接导出数据为XML字符串或保存到文件。下面介绍几种常用的方法。
使用WriteXml方法直接生成XML
DataTable类提供了WriteXml方法,可以将表结构和数据一起输出为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的转换,无论是用于配置保存、数据交换还是接口传输都非常实用。