2009-09-30 104 views
2

我很新來使用RSS訂閱源進行編程,請原諒我,如果這聽起來像是一個非常普遍的問題。合併多個RSS訂閱源

是否有可能採取多個RSS來自多個站點的飼料和它們合併爲一個單一的對象展示給最終用戶?

例如,可我拿最新的新聞標題從一個網站,最新的博客更新從一個完全不同的網站,並將它們合併成一個單獨的列表顯示給用戶?

我已經看到了這種問題問過,似乎像它可能的,但輕微的扭曲是我想要讓用戶補充說,他們從任何來源想要的任何飼料

我希望做這在ASP.NET

非常感謝!

回答

3

可以使用SyndicationFeed class工作與RSS的淨源。

你可能想這樣做(未經測試):

var allItems = new List<SyndicationItem>(); 

foreach(var feedUrl in whatever) { //In your list of urls 
    using(var reader = XmlReader.Create(url)) 
     allItems.AddRange(SyndicationFeed.Load(reader).Items); 
} 

var newFeed = new SyndicationFeed(items); 

//Do something with newFeed 

您應該添加錯誤處理的情況下,飼料中的一個不可用或無效。

1

這是可能的,是的。

對於這種事情在行動的一個很好的例子,看看Yahoo! Pipes

這很可能是LINQ到XML一個很好的應用,但我會離開的實施給你。