国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用C#實現RSS的生成和解析,支持RSS2.0和Atom格式

2019-11-17 03:10:58
字體:
來源:轉載
供稿:網友

用C#實現rss的生成和解析,支持RSS2.0和Atom格式

RSS已經非常流行了,幾乎所有有點名氣的和沒名氣的網站都有提供RSS服務。

本文詳細教你什么是RSS,如是在.Net中使用RSS。

1.那么什么是RSS呢?

RSS是一種消息來源格式規范,用以發布經常更新資料的網站,例如博客、新聞的網摘。RSS文件,又稱作摘要、網摘、更新、頻道等,包含了全文或節選文字,再加上一定的屬性數據。RSS讓發布者自動發布信息,也使讀者能夠聚合和定期更新不同網站的網摘。RSS可以通過以網頁或桌面為架構的軟件來閱讀,即RSS閱讀器、新聞聚合器等,并進行定期更新檢查、自動下載。詳細介紹見RSS簡介

2.RSS的格式是怎樣的呢?

RSS目前主要有兩種標準格式:RSS2.0 、Atom1.0

3.如何制作RSS,如何解析RSS呢?

在.NET4/3.5下,MS集成了RSS對象。讓RSS的解析和創建變得如此簡單。

先引用System.ServiceModel

代碼里面:

using System.ServiceModel.Syndication;

解析RSS和Atom的方法如下:

//通用解析RSS方法        PRotected void ShowRSS(string rssURI)        {            SyndicationFeed sf = SyndicationFeed.Load(xmlReader.Create(rssURI));            textBox1.Text += "title:" + sf.Title.Text + "/r/n";            if (sf.Links.Count > 0)                textBox1.Text += "Link:" + sf.Links[0].Uri.ToString() + "/r/n";            if (sf.Authors.Count > 0 && !string.IsNullOrEmpty(sf.Authors[0].Uri))                textBox1.Text += "Link:" + sf.Authors[0].Uri.ToString() + "/r/n";            textBox1.Text += "pubDate:" + sf.LastUpdatedTime.ToString("yyyy-MM-dd HH:mm:ss") + "/r/n";            foreach (SyndicationItem it in sf.Items)            {                textBox1.Text += "/r/n-----------------------------------------------------/r/n";                textBox1.Text += "title:" + it.Title.Text + "/r/n";                if (it.Links.Count > 0)                    textBox1.Text += "Link:" + it.Links[0].Uri.ToString() + "/r/n";                textBox1.Text += "PubDate:" + it.PublishDate.ToString("yyyy-MM-dd HH:mm:ss") + "/r/n";                if(it.Summary!=null)                    textBox1.Text += "Summary:" + it.Summary.Text + "/r/n";                if(it.Content!=null)                    textBox1.Text += "Content:" + ((TextSyndicationContent)it.Content).Text + "/r/n";                application.DoEvents();            }                    }

  

解釋:此方法可解析RSS2.0和Atom格式。傳入參數是一個rss的xml文件路徑或者網址。

調用ShowRSS方法示例1(解析Atom):

           //解析博客園的RSS,該RSS版本為Atom,從http://feed.VEVb.com/blog/u/18638/rss下載所得。            ShowRSS(Application.StartupPath + "http://VEVb.xml");            //修改成博客園RSS地址進行測試            //ShowRSS("http://feed.VEVb.com/blog/u/18638/rss");

  

調用ShowRSS方法示例2(解析RSS2.0):

            //解析創業邦的RSS,該RSS版本為RSS2.0             ShowRSS(Application.StartupPath + "http://cyb.xml");            //修改成創業邦RSS地址進行測試            //ShowRSS("http://www.cyzone.cn/rss/");

  

解釋:可以拿真實網址測試,上面兩個網址分別是RSS2.0格式和Atom格式。

生成RSS2.0的方法:

//生成RSS2.0            SyndicationFeed feed = new SyndicationFeed("博客園_DotNet筆記",                "興趣是最好的老師。",                 new Uri("http://VEVb.com/tuyile006"),                "FeedID,如:uuid:0913a2a5-6900-42a0-a3ab-2ba6a1706b03;id=10373",                 DateTime.Now);            List<SyndicationItem> items = new List<SyndicationItem>();            SyndicationItem item1 = new SyndicationItem();            item1.Title = new TextSyndicationContent("博客標題,如:解析和生成RSS或Atom");            item1.Content = SyndicationContent.CreatePlaintextContent("正文:本文講述如何在.Net中實現Rss和Atom的生成和解析&hell

  

解釋:生成RSS2.0和Atom格式的xml只是最后的保存方法不同,一個是SaveAsRss20,一個是SaveAsAtom10,前面創建SyndicationFeed的過程是一樣的。

程序界面如下:

程序下載: DemoCode


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平乡县| 闸北区| 达日县| 乌拉特中旗| 泸西县| 伊吾县| 石河子市| 吉木萨尔县| 镇巴县| 灯塔市| 常山县| 太康县| 永定县| 怀安县| 高陵县| 安丘市| 新巴尔虎右旗| 太白县| 夏邑县| 叶城县| 广安市| 福泉市| 乐东| 安远县| 项城市| 柘城县| 南汇区| 东阿县| 大冶市| 隆昌县| 剑阁县| 泽普县| 大洼县| 华阴市| 武鸣县| 交口县| 香河县| 梁河县| 延庆县| 肇东市| 伽师县|