C#如何将DataTable转换为XML_C#将DataTable转换为XML教程

使用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的转换,无论是用于配置保存、数据交换还是接口传输都非常实用。