合并多个RSS源

时间:2009-09-30 16:01:32

标签: asp.net rss

如果这听起来像是一个非常普遍的问题,我很高兴使用RSS源进行编程,请原谅我。

是否可以从多个站点获取多个RSS源并将它们组合为单个对象以向最终用户显示?

例如,我是否可以从一个站点获取最新的新闻标题,来自完全不同的站点的最新博客更新,并将它们组合成一个列表以向用户显示?

我之前已经看到过这样的问题,看起来似乎有可能,但稍微有点麻烦,我想让用户从任何来源添加他们想要的任何Feed

我希望在ASP.NET中执行此操作

非常感谢!

2 个答案:

答案 0 :(得分:3)

您可以使用SyndicationFeed class在.Net中使用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 :(得分:1)

有可能,是的。

有关此类事件的一个很好的示例,请查看Yahoo! Pipes

这可能是LINQ to XML的一个很好的应用,但我会将实现留给你。