В отличие от XmlDocument.Load
, XDocument.Load
- это статический метод , возвращающий новый XDocument
:
XDocument doc = XDocument.Load(new StringReader(sr.ReadToEnd()));
Кажется довольно бессмысленным читать поток до конца , а затем создать StringReader
. Во-первых, бессмысленно создавать StreamReader
- и если XML-документ не является в UTF-8, это может вызвать проблемы. Лучше:
Для .NET 4, где есть перегрузка XDocument.Load(Stream)
:
using (var response = request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
var doc = XDocument.Load(stream);
}
}
Для .NET 3.5, где нет:
using (var response = request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
var doc = XDocument.Load(XmlReader.Create(stream));
}
}
Или, в качестве альтернативы, просто позвольте LINQ to XML выполнить все работу:
XDocument doc = XDocument.Load(url);
РЕДАКТИРОВАТЬ: обратите внимание, что ошибка компилятора дала вам достаточно информации, чтобы начать работу: она сказала, что вы не можете назвать XDocument.Load
как doc.Load
, и вместо этого дать имя типа. Ваш следующий шаг должен был обратиться к документации, которая, конечно, приводит примеры.