我怎样才能开始制作一个C#RSS阅读器?

我一直想做一段时间的RSS阅读器(只是为了好玩),但是我从没有丝毫的想法,从哪里开始。 我不了解RSS的任何内容。 是否有任何关于RSS的好教程,以及如何在应用程序中实现它(而不是如何制作RSS阅读器的教程,这太容易了)。

看到

http://msdn.microsoft.com/en-us/library/bb943474.aspx

http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx

http://msdn.microsoft.com/en-us/library/bb943480.aspx

基本上,.Net 3.5框架中有很多东西可以parsing和表示提要, 例如,编写一个30行的应用程序并不难,例如,该应用程序需要一个提要URL并下载该提要并打印所有项目的标题和作者。 (适用于RSS 2.0(而不是其他!)或Atom。)

如果您专注于创buildRSS阅读器而不是RSSparsing逻辑,则可能需要使用CodePlex.com上名为Argotic的免费RSS库来委托创build/阅读RSS源

作为另一张海报推荐,SyndicationFeed类和Argotic是最好的select。

如果性能问题,SyndicationFeed类会好很多。 我认为它比我的硬件上的Argotic快了9倍。

我在SyndicationFeed类中遇到的问题是能够成功parsing来自“net”的任何随机提要。 它经常出乎意料地失败了一个XmlException。

对于我的使用,我坚持与Argotic。 毕竟,它是开源的,所以我可以随时做出改变,如果我需要的话。

我build议你使用这个

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

由于标准联合供稿不支持其他版本的rss。

您需要使用RSS XML规范: http : //cyber.law.harvard.edu/rss/rss.html

如果你在不使用任何库的情况下编写一个全function的阅读器,也可以认为有ATOM提要parsing。

RSS本身非常简单。 只是一个频道的XML描述,以及该频道上的项目列表(可能附有每个项目的文件)。 跟踪更新有点棘手,pipe理编码和发布时间/date也是棘手的。 真正的噩梦是不同网站使用的RSS格式的不同“解释”。 如果你真的在编写一个feed阅读器,你可能需要先parsingAtom,因为它是一个更加标准化的格式,可能会让你更快,并且有一个很好的devise来分支到RSS中。 但实际上,您应该只使用一个RSSparsing库 – 最好是最兼容的一个(但不要为RSS库支付费用;它们很普通)。

RSS是一种XML方言,所以如果您了解XML,就可以解决部分问题。 如果您想要开始您的项目,请考虑查看已经存在的开源项目:

http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader

CodePlex(上图)是一个很好的开始,因为大多数项目都是C#。

考虑阅读RSS Bandit的源代码,它是一个C#Winforms(可能即将推出的WPF)RSS阅读器。

你应该通过应用程序来获得一些好点子。

我一直在使用RSS,并发现使用RssSyndication类的ATOM提要通常更容易parsing。 对于RSS 2.0规范,如果订阅源实际上是有效的,那么从URI加载XDocument并根据需要parsing数据就很容易。

如果你不能使用System.ServiceModel.Syndication.Syndicationfeed ,例如因为你正在使用PCL(可移植类库)。 我写了一个: FeedParserPCL 。 你可以在NuGet上find它。