Использование LINQ для запроса XML и возврата пустой строки, если данные отсутствуют - PullRequest
0 голосов
/ 08 марта 2011

То, что я пытаюсь сделать, - это написать универсальный rss-ридер, к которому я подключаю любой URL-адрес, не беспокоясь, если фид имеет все общие свойства.Например, в моем примере ниже я ищу pubDate , однако, если в xml не существует pubDate , я бы хотел вернуть текущую дату.Я не могу понять синтаксис правильно, хотя.Есть предложения?

Dim xmldoc As New XDocument
xmldoc = XDocument.Load(url)

Dim feeds = From feed In xmldoc.Descendants("item") Select New With { _
    Key .Title = feed.Element("title").Value, _
    Key .Link = feed.Element("link").Value, _
    Key .Description = feed.Element("description").Value, _
    Key .PubDate = If(feed.Element("pubDate").Value Is Nothing, Date.Now.ToString, feed.Element("pubDate").Value)}

For Each item In feeds
    Response.Write("<a href=""" & item.Link & """ target=""_blank"">" & item.Title & "</a> - " & item.PubDate & "<br />")
    Response.Write(item.Description & "<hr />")
Next

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Попробуйте это

 Key .PubDate = IIf(feed.Element("pubDate") Is Nothing, Date.Now.ToString, feed.Element("pubDate").Value)
0 голосов
/ 08 марта 2011

вместо feed.Element("pubDate").Value Is Nothing напишите feed.Element("pubDate") Is Nothing!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...