如何使用的System.IO.Stream与LINQ读取XML文件 [英] How to read XML file using System.IO.Stream with LINQ

查看:234
本文介绍了如何使用的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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆