RSS订阅LINQ
问题描述:
我想使用LINQ来提取RSS源。认为这很简单,但它没有返回任何节点。可能我必须去频道/项目节点,但不知道如何。RSS订阅LINQ
Dim rssUrl As String = "http://webclip.in/rss.aspx?u=mostliked"
Dim rssDoc As XDocument = XDocument.Load(rssUrl)
Dim rssResultSet = From node In rssDoc.Descendants("item") _
Select New With { _
.title = node.Element("title").Value, _
.link = node.Element("link").Value, _
.description = node.Element("description").Value, _
.pubDate = Date.Parse(node.Element("pubdate").Value) _
}
DataGridView1.DataSource = rssResultSet
答
两个问题。首先,你应该纠正这一行:
.pubDate = Date.Parse(node.Element("pubDate").Value)
的pubdate的是XML的情况下,敏感的节点。其次,你的dataSource将永远不会工作,因为LINQ是懒惰的计算。您必须使用ToList()或枚举您的集合的类似方法。如果在Visual Studio 2010中进行调试,则会看到rssResultSet没有值,因为只有在代码调用它时才枚举它。替换为:
DataGridView1.DataSource = rssResultSet.ToList()
我最后一条建议是将您的DataGrid设置为AutoGenerate它的列。
答
pubdate上的外壳是错误的。它应该是“pubDate”。否则,工作正常。这里
你在这里面对的代码有什么错误/问题?第二行代码应该给你XDocument对象中的RSS xml。 – Perpetualcoder 2009-12-17 05:53:17
其工作良好,直到第二行。我无法访问rssDoc.Descendants(“item”)。 不给我任何错误。 – vamsivanka 2009-12-17 19:11:40