Предполагая, что вам не нужно устанавливать прокси или учетные данные для WebRequest
, вы можете упростить даже больше, чем упомянул Talljoe:
string url = "http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=fosil+fuel";
Func<string, XName> qualifiedName = name => XName.Get(name, "urn:yahoo:srch");
XDocument xmlDoc = XDocument.Load(url);
var results = from q in xmlDoc.Descendants(qualifiedName("Result"))
select new Resource(
q.Element(qualifiedName("ClickUrl")).Value,
q.Element(qualifiedName("Title")).Value,
q.Element(qualifiedName("ModificationDate")).Value);
return results.ToList();
EDIT - исправлена ошибка в моем исходном ответе (отсутствует XName для доступа к элементам) и добавлен фанк Func<>
для повторного использования квалификации пространства имен. Работает на моей машине (ТМ).