如何使用的System.IO.Stream与LINQ读取XML文件 [英] How to read XML file using System.IO.Stream with LINQ
本文介绍了如何使用的System.IO.Stream与LINQ读取XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将通过XML文件是这样的:
File1.PostedFile.InputStream
//读取XML文件.....
公共静态无效readXMLOutput(流流)
{
System.Xml.Linq.XDocument XML = System.Xml.Linq的。 XDocument.Load(流);
VAR的查询=从xml.Element P(STE)。元素(应用程序)
//其中(INT)p.Element(ID)== 1
选择页面;
的foreach(查询VAR记录)
{
的Response.Write(DFE)+ record.Element(DFE)值。
}
错误:
<块引用>
错误1'System.Xml.Linq.XDocument.Load(字符串)'最佳重载的方法匹配具有一些无效参数
不能从的System.IO.Stream到串
块引用>
解决方案
您使用转换。任何机会NET 3.5? XDocument.Load(流)
显然只抵.NET 4中。
您可能需要使用的这需要一个的XmlReader
(这是支持过载。3.5)
编辑:示例代码:
静态的XDocument LoadFromStream(流流)使用(读者的XmlReader = XmlReader.Create(流))
{
返回XDocument.Load(阅读器)
{
;
}
}
I will be passing the xml file like this:
File1.PostedFile.InputStream
//reading xml file.....
public static void readXMLOutput(Stream stream)
{
System.Xml.Linq.XDocument xml = System.Xml.Linq.XDocument.Load(stream);
var query = from p in xml.Element("ste").Element("Application")
//where (int)p.Element("Id") == 1
select Page;
foreach (var record in query)
{
Response.Write("dfe") + record.Element("dfe").Value;
}
error:
Error 1 The best overloaded method match for 'System.Xml.Linq.XDocument.Load(string)' has some invalid arguments
cannot convert from 'System.IO.Stream' to 'string'
解决方案
Are you using .NET 3.5 by any chance? XDocument.Load(Stream)
apparently only arrived in .NET 4.
You might want to use the overload which takes an XmlReader
(which is supported in 3.5).
EDIT: Sample code:
static XDocument LoadFromStream(Stream stream)
{
using (XmlReader reader = XmlReader.Create(stream))
{
return XDocument.Load(reader);
}
}
这篇关于如何使用的System.IO.Stream与LINQ读取XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文