如何在C#中将DataTable转换为XML文件?

Var*_*d.M 13 .net c# xml datatable xml-serialization

我想将DataTable转换为C#中的XML文件.我怎样才能做到这一点?

Son*_*nül 29

您可以使用DataTable.WriteXml方法.

这是一个例子;

如何使用C#2.0将我的数据表转换为XML?

string result;
using (StringWriter sw = new StringWriter()) {
dataTable.WriteXml(sw);
result = sw.ToString();
}
Run Code Online (Sandbox Code Playgroud)

如果您实际上不需要字符串但是只读,可处理的XML,那么使用MemoryStream和XPathDocument更好:

XPathDocument result;
using (MemoryStream ms = new MemoryStream()) {
dataTable.WriteXml(ms);
ms.Position = 0;
result = new XPathDocument(ms);
}
Run Code Online (Sandbox Code Playgroud)


Rya*_*llo 9

您可以使用该writeXML方法将其另存为XML().

您也可以使用本论坛第五篇文章中描述的序列化/ desirialization .


kir*_*ran 7

完成此操作的另一种方法是将数据表添加到数据集并调用数据集GetXml()上的 。此外,该数据集还配备了WriteXml()ReadXml()用于直接向/从文件路径或流写入/读取 XML。

DataSet ds = new DataSet();
ds.Tables.Add(dt1); // Table 1
ds.Tables.Add(dt2); // Table 2...
...
string dsXml= ds.GetXml();
...
using (StreamWriter fs = new StreamWriter(xmlFile)) // XML File Path
{
      ds.WriteXml(fs);
}
Run Code Online (Sandbox Code Playgroud)