繁体   English   中英

如何使用带有LINQ的System.IO.Stream读取XML文件

[英]How to read XML file using System.IO.Stream with LINQ

我将像这样传递xml文件:

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;
    }

错误:

错误1'System.Xml.Linq.XDocument.Load(string)'的最佳重载方法匹配有一些无效的参数

无法从'System.IO.Stream'转换为'string'

您是否有机会使用.NET 3.5? XDocument.Load(Stream)显然只是到了.NET 4。

您可能希望使用带有XmlReader的重载 (在3.5中受支持)。

编辑:示例代码:

static XDocument LoadFromStream(Stream stream)
{
    using (XmlReader reader = XmlReader.Create(stream))
    {
        return XDocument.Load(reader);    
    }
}

XDocument.Load(Stream)方法是.NET 4中的新方法。对于框架的早期版本,您需要首先读取流并将其作为字符串传递:

public static void readXMLOutput(Stream stream){
    string streamContents;
    using(var sr = new StreamReader(stream)){
        streamContents = sr.ReadToEnd();
    }

    var document = XDocument.Parse(streamContents);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM