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

时间:2011-03-10 12:46:36

标签: c# .net xml xml-serialization datatable

我想将DataTable转换为C#中的XML文件。我怎么能这样做?

3 个答案:

答案 0 :(得分:28)

您可以使用 DataTable.WriteXml 方法。

这是一个例子;

<强> How can i convert my datatable into XML using C# 2.0?

string result;
using (StringWriter sw = new StringWriter()) {
dataTable.WriteXml(sw);
result = sw.ToString();
}

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

XPathDocument result;
using (MemoryStream ms = new MemoryStream()) {
dataTable.WriteXml(ms);
ms.Position = 0;
result = new XPathDocument(ms);
}

答案 1 :(得分:9)

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

您还可以使用序列化/ desirialization,如此forum的第五篇文章中所述。

答案 2 :(得分:3)

完成此任务的另一种方法是将数据表添加到数据集并调用数据集上的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);
}