Я буду передавать 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 лучшее соответствие перегруженного метода для 'Системы. Xml. Linq. XDocument. Загрузка (строка)' имеет некоторые недействительные аргументы
не может преобразовать из 'Системы. IO.Stream' для 'представления в виде строки'
Вы случайно не используете .NET 3.5? XDocument.Load(Stream)
, очевидно, появился только в .NET 4.
Возможно, вы захотите использовать перегрузку, которая принимает XmlReader
(который поддерживается в 3.5).
EDIT: Пример кода:
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);
}