65.9K
CodeProject 正在变化。 阅读更多。
Home

在ASP.NET中创建RSS聚合器用户控件

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.92/5 (7投票s)

2006年3月2日

2分钟阅读

viewsIcon

99375

downloadIcon

857

本文演示了如何轻松创建RSS feed聚合器并将其集成到ASP.NET应用程序中。

Sample Image - screenshot.gif

引言

RSS是一种XML格式,用于聚合来自主要新闻网站、社区和个人网络日志的新闻和内容。 但它不仅仅适用于新闻。 如果您知道如何读取RSS XML,它就能够将丰富的动态内容传递到网站。 RSS聚合器消除了许多解码RSS feed的神秘感。

背景

由于RSS聚合器是一个Web用户控件,因此实际上就像创建一个新应用程序、添加控件和关联代码,以及将控件拖放到您的站点上一样简单。 当然,您需要在代码中设置一些小东西(如feed的来源),但总的来说,它应该相当简单。 随附的示例甚至包含聚合器的样式版本,因此您无需花费额外的时间添加样式。

此版本允许您配置聚合器以下载任意数量的feed(尽管就我个人而言,我不建议超过三到四个,否则您会注意到页面加载的明显延迟)。 显示媒介是ASP.NET DataGrid控件。 示例代码实现了网格的分页。

使用代码

代码记录得很好,所以我不会在这里包含大量的代码(反正也没人会读它!:))。 我将发布的唯一代码块是将聚合器配置为下载feed的简单操作。 剩下的就靠你自己了!

您需要配置的唯一方法是BindFeeds()方法。 此方法位于RSSAggregator.ascx.cs代码隐藏文件中。 只需按照代码中的说明操作,很快您就会拥有一个工作的RSS聚合器!

private void BindFeeds()
{
    // Create a new instance of the Aggregator class. This is the
    // only class that an end user will need to instantiate.
    Aggregator ag = new Aggregator(3);

    // Add the feeds we want to display
    ag.feeds[0] = "http://blogs.msdn.com/cbrumme/rss.aspx";
    ag.feeds[1] = "http://www.rohancragg.co.uk/" + 
                  "blog/SyndicationService.asmx/GetRss";
    ag.feeds[2] = "http://blogs.geekdojo.net/" + 
                  "richard/rss.aspx?CategoryID=7";

    // Create the dataview
    DataView dv = ag.aggregateFeeds();

    // Bind to the datagrid
    this.dgRoller.DataSource = dv;
    this.dgRoller.DataBind();

    // Show the feed sources
    this.lblFeeds.Text = ag.getSources();
}

关注点

Downloader类带有三个重载方法,允许聚合器通过代理服务器下载。 使用适合您的一个。 您可以在Aggregator.cs代码页的aggregateFeeds()方法中找到此代码。 最后要注意的一点是,Parser类中的parseRSS()方法有一个布尔值。 将此值设置为true将使聚合器呈现feed的所有内容。 将其设置为false将仅呈现内容的描述。 在示例中,此值设置为true

祝您编码愉快!

© . All rights reserved.