自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于.NET技術(shù)的RSS訂閱開(kāi)發(fā)實(shí)例

開(kāi)發(fā) 后端
RSS(Really Simple Syndication,真正簡(jiǎn)單的連鎖)是一種Web內(nèi)容連鎖格式。RSS成為通過(guò)Web連鎖新聞內(nèi)容的標(biāo)準(zhǔn)格式。在.NET3.5下,MS集成了RSS對(duì)象。這樣一改變,就很大的方便了創(chuàng)建和讀取RSS了。本文將介紹的是基于.NET技術(shù)的RSS訂閱開(kāi)發(fā)實(shí)例。

首先搞了個(gè)Rss.aspx頁(yè)面,在Page_Load方法里面顯示讓它以標(biāo)準(zhǔn)的xml格式輸出

  1. Response.Cache.SetNoStore();   
  2. Response.ContentType = "application/xml";  

然后根據(jù)需要訂閱的頁(yè)面?zhèn)鬟^(guò)來(lái)的參數(shù)進(jìn)行一番判斷。把所有符合條件的資源都放在DataTable里面。

接著用MemoryStream對(duì)象對(duì)xml進(jìn)行操作,就不多說(shuō)了,看了代碼就會(huì)明白,同時(shí)也給自己做個(gè)備忘。RSS訂閱開(kāi)發(fā)實(shí)例如下:

  1. MemoryStream ms = new MemoryStream();  
  2. XmlTextWriter xmlTW = new XmlTextWriter(ms, Encoding.UTF8);  
  3. xmlTW.Formatting = Formatting.Indented;  
  4. xmlTW.WriteStartDocument();  
  5. xmlTW.WriteStartElement("rss");  
  6. xmlTW.WriteAttributeString("version", "2.0");  
  7. xmlTW.WriteStartElement("channel");  
  8. if (WebID == 0)  
  9. {  
  10. }  
  11. else  
  12. {  
  13. xmlTW.WriteElementString("title", "歡迎訂閱"+WebDs.Tables[0].Rows[0]["Web_Name"].ToString()+">>"+ColumnDs.Tables[0].Rows[0]["ColumnName"].ToString());  
  14. xmlTW.WriteElementString("link", ColumnDs.Tables[0].Rows[0]["CoulumnUrl"].ToString());  
  15. xmlTW.WriteElementString("description", "");  
  16. }  
  17. DataTable dt = ds.Tables[0];  
  18. foreach (DataRow dr in dt.Rows)  
  19. {  
  20. xmlTW.WriteStartElement("item");  
  21. xmlTW.WriteElementString("title", dr["Article_Title"].ToString());  
  22. xmlTW.WriteElementString("link", GetNewsLink(dr));  
  23. xmlTW.WriteElementString("pubDate",string.Format("{0:R}",dr["CreateTime"]));  
  24. xmlTW.WriteElementString("author", dr["UserLogin_FullName"].ToString());  
  25. xmlTW.WriteElementString("description", Pub_Config.nohtml(Pub_Config.Substrin(dr["Article_Body"], 400)));  
  26. xmlTW.WriteEndElement();  
  27. }  
  28. xmlTW.WriteEndElement();  
  29. xmlTW.WriteEndElement();  
  30. xmlTW.WriteEndDocument();  
  31. xmlTW.Flush();  
  32. byte[] buffer = ms.ToArray();  
  33. Response.Write(Encoding.UTF8.GetString(buffer));  
  34. Response.End();  
  35. xmlTW.Close();  
  36. ms.Close();  
  37. ms.Dispose(); 

RSS訂閱開(kāi)發(fā)實(shí)例中要注意的是:

1.XML格式是大小寫(xiě)敏感的,這就意味著,XML元素的起始和終止標(biāo)簽必須匹配,拼寫(xiě)和大小寫(xiě)都必須一致。

2.RSS2.0的根元素是< rss>元素,這個(gè)元素可以有一個(gè)版本號(hào)的屬性,例如:

  1. < rssversionrssversion="2.0">   
  2. ...   
  3. < /rss>  

< rss>元素只有一個(gè)子元素< channel>,用來(lái)描述聚合的內(nèi)容。在< channel>元素里面有三個(gè)必需的子元素,用來(lái)描述Web站點(diǎn)的信息。這三個(gè)元素是:

title—定義聚合文件的名稱,一般來(lái)說(shuō),還會(huì)包括Web站點(diǎn)的名稱;

link—Web站點(diǎn)的URL;

description—Web站點(diǎn)的一段簡(jiǎn)短的描述。

除此之外,還有一些可選元素來(lái)描述站點(diǎn)信息。這些元素的更多信息請(qǐng)參見(jiàn)RSS2.0規(guī)范。

每一個(gè)新聞項(xiàng)目放在一個(gè)單獨(dú)的< item>元素中。< channel>元素可以有任意數(shù)量的< item>元素。每個(gè)< item>元素可以有多種的子元素,唯一的要求是最少必須包含< title>元素和< description>元素其中一個(gè)作為子元素。以下列出了一些相關(guān)的< item>子元素:

title—新聞項(xiàng)目的標(biāo)題;

link—新聞項(xiàng)目的URL;

description—新聞項(xiàng)目的大綱;

author—新聞項(xiàng)目的作者;

pubDate—新聞項(xiàng)目的發(fā)布日期

3.< item>子元素尤其要注意的是pubDate的格式,RSS要求日期必須按照RFC822日期和時(shí)間規(guī)范進(jìn)行格式化,此格式要求:開(kāi)頭是一個(gè)可選的3字母星期縮寫(xiě)加一個(gè)逗號(hào),

.

接著必須是日加上3字母縮寫(xiě)的月份和年份,***是一個(gè)帶時(shí)區(qū)名的時(shí)間。

我們可以用Stirng.foemat()來(lái)轉(zhuǎn)化如期格式,就如我上面那個(gè)例子。

RSS訂閱開(kāi)發(fā)實(shí)例的最終結(jié)果:

最終結(jié)果

【編輯推薦】

  1. 如何避免ASP.NET緩存占用系統(tǒng)資源
  2. .NET緩存機(jī)制探討與比對(duì)
  3. 概述ASP.NET緩存機(jī)制
  4. ASP.NET數(shù)據(jù)緩存之?dāng)?shù)據(jù)緩存淺談
  5. ASP.NET數(shù)據(jù)緩存機(jī)制淺析
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-03-22 10:04:11

ChromeRSS瀏覽器

2017-04-11 13:31:40

閱讀器開(kāi)源RSS

2010-07-26 14:25:06

Widget開(kāi)發(fā)

2010-07-26 14:44:47

Widget開(kāi)發(fā)

2009-07-03 09:44:39

實(shí)現(xiàn)RSS功能JSP技術(shù)

2022-01-15 07:22:45

RSS訂閱互聯(lián)網(wǎng)聚合閱讀

2020-10-26 10:58:39

Volatility的

2009-04-01 18:13:38

LinuxMonoC#.Net

2009-06-15 16:29:42

JSONAJAX

2022-06-27 13:56:10

設(shè)計(jì)模式緩存分布式系統(tǒng)

2009-06-12 11:19:03

EJB技術(shù)商務(wù)預(yù)訂系統(tǒng)

2010-08-26 10:17:31

DB2.NET開(kāi)發(fā)

2010-08-11 13:01:09

Flex.NETSocket

2009-08-03 13:30:47

ASP.NET開(kāi)發(fā)

2009-08-21 17:11:15

ASP.NET異步回調(diào)

2009-03-09 10:28:45

AJAXASP.NETWEB

2023-10-20 14:36:08

開(kāi)源軟件.Net開(kāi)發(fā)

2024-05-06 00:00:00

.NET分布式鎖技術(shù)

2011-04-19 10:33:16

ASP.NET自定義控

2013-04-22 09:56:54

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)