Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将XML转换为数据表_C#_Xml_Ado.net - Fatal编程技术网

C# 将XML转换为数据表

C# 将XML转换为数据表,c#,xml,ado.net,C#,Xml,Ado.net,这是我能够做到的,但我很想听听人们对最佳方式的想法。我有一个XML文件位于web上,我正在编写一个web服务,它将获取该数据并将其转换为DataTable对象,然后返回DataTable。我们使用的是c#3.5。您认为解决这个问题的最佳方法是什么?只需将XML文件下载到本地磁盘,然后创建DataTable并调用它。。。。。还是我遗漏了什么 ReadXml甚至支持一个流,因此您可以通过从该URL下载XML将其直接连接到WebResponse流 (这是未经测试的,根据记忆-但应该让您知道如何处理此问

这是我能够做到的,但我很想听听人们对最佳方式的想法。我有一个XML文件位于web上,我正在编写一个web服务,它将获取该数据并将其转换为DataTable对象,然后返回DataTable。我们使用的是c#3.5。您认为解决这个问题的最佳方法是什么?

只需将XML文件下载到本地磁盘,然后创建DataTable并调用它。。。。。还是我遗漏了什么

ReadXml甚至支持一个流,因此您可以通过从该URL下载XML将其直接连接到WebResponse流

(这是未经测试的,根据记忆-但应该让您知道如何处理此问题):


Marc

您可以将XML解析为数据集并获取其数据表:

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

实际上,XML位于我的域之外,因此我必须将其保存到磁盘,然后加载它。我希望避免IO成本。我不想要IO成本,这是我在内存中循环和XML文档并手动将其添加到数据表中的唯一选项吗?抱歉,懒惰的阅读。我可以使用web请求流。听起来很棒!
DataTable dt = new DataTable();
dt.ReadXml("c:myxml.xml");
DataSet dataSet = new DataSet();
dataSet.ReadXml("input.xml", XmlReadMode.ReadSchema);