2009-12-17 2 views
1

linq를 사용하여 rss 피드를 추출하려고합니다. 생각은 간단하지만 노드가 반환되지 않습니다. 아마 채널/항목 노드로 가야하지만 어떻게해야할지 모르겠다.rss feed by 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 
+0

코드에 어떤 오류/문제점이 있습니까? ur 코드의 두 번째 줄은 XDocument 객체에 RSS xml을 제공해야합니다. – Perpetualcoder

+0

두 번째 줄까지 잘 작동합니다. rssDoc.Descendants ("item")에 액세스 할 수 없습니다. 오류를 만나실 수 없습니다. – vamsivanka

답변

1

두 가지 문제 여기 ... 첫째, 당신이 줄을 수정해야합니다. 둘째로, LINQ가 게으른 계산이므로 데이터 소스가 작동하지 않습니다. ToList() 또는 컬렉션을 열거하는 비슷한 메서드를 사용해야합니다. Visual Studio 2010 내에서 디버깅하는 경우 rssResultSet은 코드가 호출 될 때 열거되기 때문에 rssResultSet에 값이 없음을 알 수 있습니다. 다음으로 바꾸기 :

DataGridView1.DataSource = rssResultSet.ToList() 

마지막 조언은 DataGrid를 자동 생성하도록 설정하는 것입니다.

0

생년월일의 케이스가 잘못되었습니다. "pubDate"여야합니다. 그렇지 않으면 정상적으로 작동합니다. pubDate의는 XML에서 대소 문자를 구분 노드

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

: