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

我如何开始制作C#RSS阅读器?,c#,xml,rss,C#,Xml,Rss,我想做一个RSS阅读器已经有一段时间了(只是为了好玩),但我一点也不知道从哪里开始。我对RSS一无所知。是否有关于RSS以及如何在应用程序中实现它的好教程(不是关于如何制作RSS阅读器的教程,那太容易了)。请参阅 基本上,在.NET3.5框架中有很多东西可以解析和表示提要;例如,编写一个30行的应用程序并不难,它接收提要URL并下载提要,打印所有项目的标题和作者。(适用于RSS 2.0(而不是其他!)或Atom。)您需要使用RSS XML规范:如果您编写一个功能齐全的阅读器而不使用任何库,

我想做一个RSS阅读器已经有一段时间了(只是为了好玩),但我一点也不知道从哪里开始。我对RSS一无所知。是否有关于RSS以及如何在应用程序中实现它的好教程(不是关于如何制作RSS阅读器的教程,那太容易了)。

请参阅


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

您需要使用RSS XML规范:

如果您编写一个功能齐全的阅读器而不使用任何库,也会认为有提要需要解析。

如果您专注于创建一个RSS阅读器而不是RSS解析逻辑,您可能希望使用这个名为CodePlex.com的免费RSS库委托创建/阅读RSS提要。RSS本身非常简单。只有一个频道的XML描述,以及该频道上的项目列表(可能带有附加到每个项目的文件)。跟踪更新有点棘手,但管理编码和发布时间/日期也有点棘手。真正的噩梦是不同网站对RSS格式的不同“解释”。如果你真的在写一个提要阅读器,你可能想从解析Atom开始,因为它是一种更标准化的格式,并且可能会让你更快,因为它有一个很好的设计来分支到RSS。但实际上,您应该只使用RSS解析库——最好是最兼容的库(但不要花钱购买RSS库,因为它们很常见)。

RSS是一种XML方言,因此如果您了解XML,您就解决了部分问题。如果你想开始你的项目,考虑一下已经存在的开源项目:


CodePlex(上图)是一个很好的起点,因为大多数项目将在C#进行。

另一张海报建议,SyndicationFeed类和Argotic是最好的选择

如果性能是个问题,那么SyndicationFeed类会更好。我的基准测试表明,在我的硬件上,它的速度大约是Argotic的9倍

SyndicationFeed类的问题在于它能够成功解析来自“net”的任何随机提要。它失败时常常会出现XmlException异常


对于我的用途,我坚持使用Argotic。毕竟,它是开源的,所以如果需要,我可以随时进行更改。

考虑阅读的源代码,这是一个C#Winforms(可能很快会是WPF)RSS阅读器


您应该通过单步浏览应用程序获得一些好主意。

我建议您使用此工具

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


因为标准联合提要不支持其他版本的rss

我一直在使用RSS,发现ATOM提要通常更容易使用RssSyndication类进行解析。对于RSS2.0规范,如果提要实际上是有效的,那么从URI加载XDocument并根据需要解析数据也同样容易

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

例如,请参阅顶部的10行代码片段(F#,但大部分只是调用框架API),它将让您在大约30秒的编码时间内从Uri打印提要。非常有用的链接,如果有人要解析rss,这些就是链接!在我的网站上有一个完整的RSS、RDF和ATOM阅读器应用程序和教程,它展示了如何使用LINQ编写自己的解析器。