当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET 生成 RSS Feed(2)

 ASP.NET 生成 RSS Feed(2)

点击次数:17 次 发布日期:2008-11-26 12:25:13 作者:源代码网
源代码网推荐      189
源代码网推荐  190 #endregion
源代码网推荐  191
源代码网推荐  192 Private method#region Private method
源代码网推荐  193
源代码网推荐  194 private void WritePrologue()
源代码网推荐  195 {
源代码网推荐  196 rssWriter.WriteStartDocument();
源代码网推荐  197 rssWriter.WriteStartElement("rss");
源代码网推荐  198 rssWriter.WriteAttributeString("version", "2.0");
源代码网推荐  199 rssWriter.WriteAttributeString("xmlns:media", XMLNS_MEDIA);
源代码网推荐  200 rssWriter.WriteAttributeString("xmlns:dc", XMLNS_DC);
源代码网推荐  201 rssWriter.WriteString(" ");
源代码网推荐  202 // Write in channel block
源代码网推荐  203 rssWriter.WriteStartElement("channel");
源代码网推荐  204 rssWriter.WriteString(" ");
源代码网推荐  205 rssWriter.WriteElementString("title", TITLE);
源代码网推荐  206 rssWriter.WriteString(" ");
源代码网推荐  207 rssWriter.WriteElementString("link", LINK);
源代码网推荐  208 rssWriter.WriteString(" ");
源代码网推荐  209 rssWriter.WriteElementString("description", DESCRIPTION);
源代码网推荐  210 rssWriter.WriteString(" ");
源代码网推荐  211 rssWriter.WriteElementString("pubDate", PUB_DATE);
源代码网推荐  212 rssWriter.WriteString(" ");
源代码网推荐  213 rssWriter.WriteElementString("lastBuildDate", LAST_BUILD_DATE);
源代码网推荐  214 rssWriter.WriteString(" ");
源代码网推荐  215 rssWriter.WriteElementString("language", LANGUAGE);
源代码网推荐  216 rssWriter.WriteString(" ");
源代码网推荐  217 rssWriter.WriteElementString("copyright", COPYRIGHT);
源代码网推荐  218 rssWriter.WriteString(" ");
源代码网推荐  219 rssWriter.WriteElementString("generator", GENERATOR);
源代码网推荐  220 rssWriter.WriteString(" ");
源代码网推荐  221 // Write in image block
源代码网推荐  222 rssWriter.WriteStartElement("image");
源代码网推荐  223 rssWriter.WriteString(" ");
源代码网推荐  224 rssWriter.WriteElementString("url", IMAGE_URL);
源代码网推荐  225 rssWriter.WriteString(" ");
源代码网推荐  226 rssWriter.WriteElementString("title", IMAGE_TITLE);
源代码网推荐  227 rssWriter.WriteString(" ");
源代码网推荐  228 rssWriter.WriteElementString("link", IMAGE_LINK);
源代码网推荐  229 rssWriter.WriteString(" ");
源代码网推荐  230 rssWriter.WriteEndElement();
源代码网推荐  231 rssWriter.WriteString(" ");
源代码网推荐  232 }
源代码网推荐  233
源代码网推荐  234 /**//// <summary>
源代码网推荐  235 /// Write in items
源代码网推荐  236 /// </summary>
源代码网推荐  237 private void WriteItem(ItemInfo item)
源代码网推荐  238 {
源代码网推荐  239 // Write in item block
源代码网推荐  240 rssWriter.WriteStartElement("item");
源代码网推荐  241 rssWriter.WriteString(" ");
源代码网推荐  242 rssWriter.WriteElementString("title", item.ItemTitle);
源代码网推荐  243 rssWriter.WriteString(" ");
源代码网推荐  244 rssWriter.WriteElementString("link", item.ItemLink);
源代码网推荐  245 rssWriter.WriteString(" ");
源代码网推荐  246
源代码网推荐  247 rssWriter.WriteStartElement("description");
源代码网推荐  248 rssWriter.WriteString(" ");
源代码网推荐  249 rssWriter.WriteCData(item.ItemDescription);
源代码网推荐  250 rssWriter.WriteString(" ");
源代码网推荐  251 rssWriter.WriteEndElement();
源代码网推荐  252
源代码网推荐  253 rssWriter.WriteString(" ");
源代码网推荐  254 rssWriter.WriteElementString("pubDate", item.ItemPubDate);
源代码网推荐  255 rssWriter.WriteString(" ");
源代码网推荐  256 rssWriter.WriteElementString("dc:date.Taken", item.ItemDateTaken);
源代码网推荐  257 rssWriter.WriteString(" ");
源代码网推荐  258 rssWriter.WriteElementString("author", item.ItemAuthor);
源代码网推荐  259 rssWriter.WriteString(" ");
源代码网推荐  260 rssWriter.WriteStartElement("guid");
源代码网推荐  261 rssWriter.WriteAttributeString("isPermaLink", "false");
源代码网推荐  262 rssWriter.WriteString(item.ItemGuid);
源代码网推荐  263 rssWriter.WriteEndElement();
源代码网推荐  264
源代码网推荐  265
源代码网推荐  266 // Write item media here
源代码网推荐  267
源代码网推荐  268 }
源代码网推荐  269
源代码网推荐  270 /**//// <summary>
源代码网推荐  271 /// Write in item media
源代码网推荐  272 /// </summary>
源代码网推荐  273 /// <param name="item">ItemInfo item</param>
源代码网推荐  274 private void WriteItemMedia(ItemInfo item)
源代码网推荐  275 {
源代码网推荐  276 // Write in media
源代码网推荐  277 rssWriter.WriteString(" ");
源代码网推荐  278 rssWriter.WriteStartElement("media:content");
源代码网推荐  279 rssWriter.WriteAttributeString("url", item.MediaContentUrl);
源代码网推荐  280 rssWriter.WriteAttributeString("type", "image/jpeg");
源代码网推荐  281 rssWriter.WriteEndElement();
源代码网推荐  282 rssWriter.WriteString(" ");
源代码网推荐  283 rssWriter.WriteElementString("media:title", item.MediaTitle);
源代码网推荐  284 rssWriter.WriteString(" ");
源代码网推荐  285 rssWriter.WriteStartElement("media:text");
源代码网推荐  286 rssWriter.WriteAttributeString("type", "html");
源代码网推荐  287 rssWriter.WriteString(item.MediaDescription);
源代码网推荐  288 rssWriter.WriteEndElement();
源代码网推荐  289 rssWriter.WriteString(" ");
源代码网推荐  290 rssWriter.WriteStartElement("media:thumbnail");
源代码网推荐  291 rssWriter.WriteAttributeString("url", item.MediaThumbUrl);
源代码网推荐  292 rssWriter.WriteAttributeString("height", item.MediaThumbHeight);
源代码网推荐  293 rssWriter.WriteAttributeString("width", item.MediaThumbWidth);
源代码网推荐  294 rssWriter.WriteEndElement();
源代码网推荐  295 rssWriter.WriteString(" ");
源代码网推荐  296 rssWriter.WriteStartElement("media:credit");
源代码网推荐  297 rssWriter.WriteAttributeString("role", "photographer");
源代码网推荐  298 rssWriter.WriteString(item.MediaAuthor);
源代码网推荐  299 rssWriter.WriteEndElement();
源代码网推荐  300 rssWriter.WriteString(" ");
源代码网推荐  301
源代码网推荐  302 }
源代码网推荐  303
源代码网推荐  304 /**//// <summary>
源代码网推荐  305 /// Close item element
源代码网推荐  306 /// </summary>
源代码网推荐  307 private void WriteItemEnd()
源代码网推荐  308 {
源代码网推荐  309 rssWriter.WriteString(" ");
源代码网推荐  310 rssWriter.WriteEndElement();
源代码网推荐  311 rssWriter.WriteString(" ");
源代码网推荐  312 }
源代码网推荐  313
源代码网推荐  314 /**//// <summary>
源代码网推荐  315 /// Close all the elements
源代码网推荐  316 /// </summary>
源代码网推荐  317 private void WriteEnd()
源代码网推荐  318 {
源代码网推荐  319 rssWriter.WriteEndElement();
源代码网推荐  320 rssWriter.WriteString(" ");
源代码网推荐  321 rssWriter.WriteEndElement();
源代码网推荐  322 rssWriter.WriteEndDocument();
源代码网推荐  323 }
源代码网推荐  324
源代码网推荐  325 #endregion
源代码网推荐  326
源代码网推荐  327 /**//// <summary>
源代码网推荐  328 /// Write RSS feed
源代码网推荐  329 /// </summary>
源代码网推荐  330 public void WriteRSS()
源代码网推荐  331 {
源代码网推荐  332 WritePrologue();
源代码网推荐  333 foreach (ItemInfo info in items)
源代码网推荐  334 {
源代码网推荐  335 WriteItem(info);
源代码网推荐  336 if (hasMedia)
源代码网推荐  337 WriteItemMedia(info);
源代码网推荐  338 WriteItemEnd();
源代码网推荐  339 }
源代码网推荐  340 WriteEnd();
源代码网推荐  341 }
源代码网推荐  342 }
源代码网推荐  343}
源代码网推荐  然后使用一个FeedBase.cs类,调用上面的RssBase类中的方法和属性。代码如下。(该文件有改动,如要编译,需做相关修改)
源代码网推荐  
源代码网推荐   1using System.Collections.Generic;
源代码网推荐   2using System.Configuration;
源代码网推荐   3using System.Data;
源代码网推荐   4using System.Text;
源代码网推荐   5using System.Web;
源代码网推荐   6using System.Web.UI;
源代码网推荐   7using System.Xml;
源代码网推荐   8
源代码网推荐   9
源代码网推荐  10public class FeedBase : Page
源代码网推荐  11{
源代码网推荐  12 public void GenerateRss()
源代码网推荐  13 {
源代码网推荐  14
源代码网推荐  15 IList<RssBase.ItemInfo> items = new List<RssBase.ItemInfo>();
源代码网推荐  16
源代码网推荐  17 // Populate items.
源代码网推荐  18 foreach (DataRow row in rows)
源代码网推荐  19 {
源代码网推荐  20 RssBase.ItemInfo item = new RssBase.ItemInfo(row["Title"].ToString(), "link", row["Description"].ToString(), row["PubDate"].ToString(), row["Author"].ToString(), "guid");
源代码网推荐  21 items.Add(item);
源代码网推荐  22 }
源代码网推荐  23
源代码网推荐  24 XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream,
源代码网推荐  25 Encoding.UTF8);
源代码网推荐  26
源代码网推荐  27 RssBase rssBase = new RssBase(xmlWriter, false, items);
源代码网推荐  28 rssBase.WriteRSS();
源代码网推荐  29
源代码网推荐  30 xmlWriter.Flush();
源代码网推荐  31 xmlWriter.Close();
源代码网推荐  32
源代码网推荐  33 Response.ContentEncoding = Encoding.UTF8;
源代码网推荐  34 Response.ContentType = "text/xml";
源代码网推荐  35 Response.Cache.SetCacheability(HttpCacheability.Public);
源代码网推荐  36
源代码网推荐  37 Response.End();
源代码网推荐  38 }
源代码网推荐  39
源代码网推荐  40}
源代码网推荐  41
源代码网推荐  42
源代码网推荐  最后,只要新建一个feed.aspx文件,继承FeedBase类,调用该类中的GenerateRss()方法就可以轻松生成你所期望的RSS Feed :)
源代码网推荐  有什么建议和想法,请留言!
源代码网推荐  
源代码网推荐  http://www.cnblogs.com/jerryhu/archive/2006/08/30/490544.html
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华