如何开始制作一个C# RSS阅读器?

50

我一直想做一个RSS阅读器(只是为了好玩),但是我根本不知道从哪里开始。我对RSS一无所知。有没有关于RSS和如何在应用程序中实现它的好教程(不是教如何制作RSS阅读器的教程,那太简单了)。

11个回答

51

请参见:

http://msdn.microsoft.com/zh-cn/library/bb943474.aspx

http://msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.syndicationfeed.aspx

http://msdn.microsoft.com/zh-cn/library/bb943480.aspx

基本上,在 .Net 3.5 框架中有很多东西可以完成解析和表示 feeds 的繁重工作;例如,编写一个只需 30 行代码的应用程序,它可以接收一个 feed URL,下载该 feed 并打印所有项的标题和作者(仅适用于 RSS 2.0(不适用于其他格式!)或 Atom)。


2
请查看 http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!164.entry 的顶部,其中有一段包含10行代码片段(F#语言,但基本上只是调用框架API)的示例。使用这段代码,您可以在大约30秒的编码时间内将Uri转换为打印feed的功能。 - Brian
1
非常有用的链接,如果有人要解析 rss 这些就是链接! - David Conde
2
我在我的网站http://www.jarloo.com/rumormill-5/上发布了一个完整的RSS、RDF和ATOM阅读器应用程序以及教程。它展示了如何使用LINQ编写自己的解析器。 - Kelly

11
如果您专注于创建RSS阅读器而不是RSS解析逻辑,则可以使用CodePlex.com上名为Argotic的免费RSS库来委托创建/阅读RSS源。请注意保留HTML标记。

6
作为另一个帖子的推荐,SyndicationFeed类和Argotic是最好的选择。
如果性能是一个问题,那么SyndicationFeed类会更好。在我的硬件上,我对它进行了基准测试,发现它比Argotic快约9倍。
我遇到的问题是SyndicationFeed类无法成功解析来自互联网上的任何随机源。它经常出现XmlException异常。
对于我的用途,我将坚持使用Argotic。毕竟,它是开源的,所以如果需要,我总是可以进行更改。

1

我建议您使用这个

RSS.NET是一个用于RSS订阅的开源.NET类库。它提供了可重用的对象模型,用于解析和编写RSS订阅。它完全兼容RSS版本0.90、0.91、0.92和2.0.1,并实现了所有构造。

由于标准的聚合源不支持其他版本的rss。


0
如果您无法使用System.ServiceModel.Syndication.Syndicationfeed,例如因为您正在使用PCL(可移植类库),我写了一个:FeedParserPCL。您可以在NuGet上找到它。

0
考虑阅读RSS Bandit的源代码,它是一个使用C# Winforms(可能很快会转向WPF)的RSS阅读器。
通过仅仅浏览应用程序,您应该能够得到一些好的想法。

0

0

如果您想编写一个完整功能的阅读器,而不使用任何库,请注意还有 ATOM 订阅源需要解析。


0

RSS本身非常简单。只是一个频道的XML描述,以及该频道上的项目列表(可能每个项目都附带文件)。跟踪更新有点棘手,管理编码和发布时间/日期也很棘手。真正的噩梦是不同站点使用的RSS格式的所有不同“解释”。如果您真的正在编写一个订阅阅读器,您可能希望从解析Atom开始,因为它是一种更标准化的格式,并且可能会让您更快地进展,具有良好的设计可以从中分支出RSS。但实际上,您应该只使用一个RSS解析库--最好是可用的最兼容的库(但不要为RSS库付费;它们足够普遍)。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接