Tools – ASP.NET RSS Toolkit

Tools – ASP.NET RSS Toolkit

最近碰到一個要寫RSS的需求,原本想說直接用XSLT套版就好了,不過保哥介紹了一套可以直接使用的函式庫ASP.NET RSS Toolkit…這套函式庫讓不懂XSLT的人,可以非常輕鬆的產生RSS XML!

不過說穿了,其實他只是把物件XmlSerializer而已…XD

在提供下載的檔案中有好幾個範例,先來看一個基本範例:

public class RssHyperLinkFromRssFile :  RssToolkit.Rss.RssDocumentHttpHandler
{
    protected override void PopulateRss(string channelName, string userName) 
    {
        Rss.Channel = new RssChannel();
        Rss.Version = "2.0";
        Rss.Channel.Title = "Shelly Community RSS";
        Rss.Channel.PubDate = "Tue, 10 Apr 2007 23:01:10 GMT";
        Rss.Channel.LastBuildDate = "Tue, 10 Apr 2007 23:01:10 GMT";
        Rss.Channel.WebMaster = "webmaster@email.com";
        Rss.Channel.Description = "This is to test RssHyperLink From Rss File";
        Rss.Channel.Link = "~/RssHyperLink.aspx";
        
        Rss.Channel.Items = new List<RssItem>();
        if (!string.IsNullOrEmpty(channelName))
        {
            Rss.Channel.Title += " '" + channelName + "'";
        }

        if (!string.IsNullOrEmpty(userName))
        {
            Rss.Channel.Title += " (generated for " + userName + ")";
        }

        RssItem item = new RssItem();
        item.Title = "CodeGeneratedClass";
        item.Description = "Consuming RSS feed programmatically using strongly typed classes";
        item.Link = "~/CodeGeneratedClass.aspx";
        Rss.Channel.Items.Add(item);

    }    
}

首先繼承自RssToolkit.Rss.RssDocumentHttpHandler,然後覆寫方法PopulateRSS,來處理RSS的訂閱內容,Rss.Channel中定義了頻道資訊,RssItem則是項目內容,但是參數內容從哪裡來呢?為了省時間我直接用Reflector把dll挖出來看了…

image

image

所以從QueryString可以定義RSS輸出的樣版,以及登入名稱及訂閱頻道名稱。輸出的樣版有四種,包含了Rss, Opml, Atom, Rdf,他還提供了自訂樣版的功能,直接幫你產生可以使用的類別檔,很強大吧!

 補充:(2010.01.26)

記得在網站頁面加上RSS的指定連結:<link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="http://www.dotblogs.com.tw/alonstar/Rss.aspx" />

相關連結:

Using an ASHX handler to publish a feed

產生 RSS Feed 時要記得加上 pubDate 欄位 ( RSS Toolkit )

RSS 2.0 Specification

 

Dotblogs 的標籤:,