使用WriteXml方法可直接将DataTable导出为XML文件,示例代码创建包含用户信息的DataTable并调用WriteXml生成users.xml文件,输出结果包含数据与默认DocumentElement根节点。

在C#中将DataTable导出为XML文件非常简单,.NET框架本身就提供了直接支持。你不需要手动拼接XML字符串,只需调用DataTable.WriteXml()方法即可快速完成导出操作。
1. 使用WriteXml方法导出DataTable为XML文件
这是最直接的方式,DataTable类内置了WriteXml方法,可以将数据和结构一并保存为XML格式。
示例代码:
using System;
using System.Data;
// 创建一个示例DataTable
DataTable table = new DataTable("Users");
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));
// 添加几行数据
table.Rows.Add(1, "张三", 25);
table.Rows.Add(2, "李四", 30);
table.Rows.Add(3, "王五", 28);
// 导出为XML文件
table.WriteXml("users.xml");
执行后会生成名为 users.xml 的文件,内容类似:
1 张三 25 2 李四 30 3 王五 28
2. 控制XML输出格式(包含Schema)
如果你希望同时导出表结构(Schema),比如字段类型、主键等信息,可以使用 WriteXml 配合 WriteXmlSchema,或者直接使用重载方法指定模式。
导出带Schema的XML:
// 同时写入数据和结构
table.WriteXml("users_data.xml");
table.WriteXmlSchema("users_schema.xsd");
也可以将Schema嵌入到XML中:
using (var writer = new System.IO.StringWriter()) {
table.WriteXml(writer, XmlWriteMode.WriteSchema);
string xmlWithSchema = writer.ToString();
System.IO.File.WriteAllText("users_with_schema.xml", xmlWithSchema);
}
3. 自定义根节点名称
默认情况下,XML的根节点是DocumentElement,你可以通过设置DataSet来更改根节点名称。
DataSet ds = new DataSet("MyData");
ds.Tables.Add(table);
ds.WriteXml("custom_root.xml");
此时XML的根节点就会变成 ,更清晰易读。
4. 注意事项与建议
导出过程中需要注意以下几点:
- 确保程序对目标路径有写权限,否则会抛出
UnauthorizedAccessException - 如果
DataTable中有空值(null),XML中对应标签不会生成内容,但标签仍存在 - 中文字符会被正常编码保存,推荐使用UTF-8编码文件
- 若需压缩或加密XML,可在写入后额外处理文件
基本上就这些。利用WriteXml方法,几行代码就能完成DataTable到XML的导出,简单高效,适合配置导出、数据备份等场景。










