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挖出來看了…
所以從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 )