将XML转换为DataTable

时间:2009-09-07 13:48:14

标签: c# xml ado.net

这是我能够做到的事情,但我很想听听人们对最佳方法的看法。我在网络http://www.someplace.com/file上有一个XML文件,我正在编写一个Web服务,它将获取该数据并将其转换为DataTable对象,然后返回数据表。我们正在使用c#3.5。您认为解决这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

只需将XML文件下载到本地磁盘,然后创建DataTable,并在其上调用DataTable.ReadXml(filename) .....或者我错过了什么......

DataTable.ReadXml甚至支持流 - 因此您可以直接将其连接到WebResponse流,从而从该URL下载XML。

(这是未经测试的,来自内存 - 但应该让你知道如何处理这个问题):

DataTable myDataTable = new DataTable();

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://someplace/somefile.xml");
myRequest.Method = "GET";

WebResponse myResponse;
try
{
   myResponse = myRequest.GetResponse();

   using (Stream responseStream = myResponse.GetResponseStream())
   { 
      myDataTable.ReadXml(responseStream);
   }
}
catch
{ }

马克

答案 1 :(得分:2)

DataTable dt = new DataTable();
dt.ReadXml("c:myxml.xml");

答案 2 :(得分:0)

您可以将XML解析为DataSet并获取它的DataTable:

DataSet dataSet = new DataSet();
dataSet.ReadXml("input.xml", XmlReadMode.ReadSchema);