rss由linq提供

时间:2009-12-17 05:13:03

标签: linq rss

我正在尝试使用linq提取rss feed。认为这很简单,但它不会返回任何节点。可能我必须去频道/项目节点,但不知道如何。

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

2 个答案:

答案 0 :(得分:1)

这里有两个问题......首先,你应该纠正这一行:

.pubDate = Date.Parse(node.Element("pubDate").Value)

pubDate是XML中区分大小写的节点。其次,您的dataSource永远不会工作,因为LINQ是惰性计算。您必须使用ToList()或枚举您的集合的类似方法。如果在Visual Studio 2010中进行调试,则会看到rssResultSet没有值,因为只有在代码调用它时才会枚举它。替换为:

DataGridView1.DataSource = rssResultSet.ToList()

我的最后一条建议是将您的DataGrid设置为AutoGenerate它的列。

答案 1 :(得分:0)

pubdate上的外壳是错误的。它应该是“pubDate”。否则,工作正常。