我将像这样传递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'
答案 0 :(得分:12)
您是否有机会使用.NET 3.5? XDocument.Load(Stream)
显然只是在.NET 4中出现。
您可能想要使用the overload which takes an XmlReader
(3.5支持)。
编辑:示例代码:
static XDocument LoadFromStream(Stream stream)
{
using (XmlReader reader = XmlReader.Create(stream))
{
return XDocument.Load(reader);
}
}
答案 1 :(得分:3)
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);
}