189 8069 5689

C#实现RSS订阅

 今天朋友问我怎么操作RSS,说实话以前还真没弄过,甚至就不知道什么是RSS。谷哥了一下才发现原来RSS就是一个XML文档啊

创新互联建站是一家集网站建设,唐县企业网站建设,唐县品牌网站建设,网站定制,唐县网站建设报价,网络营销,网络优化,唐县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。


首先介绍下什么是RSS,来自百度百科:


RSS(简易信息聚合,也叫聚合内容)是一种描述和同步网站内容的格式。RSS可以是以下三个解释的其中一个: Really Simple Syndication;RDF (Resource Description Framework) Site Summary; Rich Site Summary。但其实这三个解释都是指同一种Syndication的技术。RSS目前广泛用于网上新闻频道,blog和wiki,主要的版本有0.91, 1.0, 2.0。使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。


下面就通过这个规范来对RSS进行解析提取数据:

 

  1. string rsspath = "http://dabao.im/rss.php";//RSS地址 

  2.         XmlDocument doc = new XmlDocument();//创建文档对象

  3. try

  4.         { 

  5.             doc.Load(rsspath);//加载XML 包括HTTP:// 和本地

  6.         } 

  7. catch (Exception ex) 

  8.         { 

  9. //异常处理

  10.         } 

  11.         XmlNodeList list = doc.GetElementsByTagName("item"); //获得项           

  12. foreach (XmlNode node in list) //循环每一项

  13.         { 

  14.             XmlElement ele = (XmlElement)node; 

  15. string title = ele.GetElementsByTagName("title")[0].InnerText;//获得标题

  16. string link = ele.GetElementsByTagName("link")[0].InnerText;//获得联接

  17. string description = ele.GetElementsByTagName("description")[0].InnerText;//获得简介

  18. //添加绑定操作

  19.         } 

 


知识扩展

 

【转】RSS规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site  Summary的缩写,1.0与2.0走的是两个体系)
RSS 基于XML,所有的 RSS 必须遵循w3c网站上公布的XML 1.0  规范。
在一个RSS文档中,根元素是  ,带有一个必备属性version,用以指明该文档遵循的rss规范,如果rss文档遵循本规范,则version值必须是2.0。
元素只有一个子元素,包含关于频道的一些信息。频道(channel)是整个blog,项(item)指一篇文章或日志(也有称这为post)。
RSS2.0元素channel的子元素列表

元素描述值域重要性举例
title频道名称必备GoUpstate.com News Headlines
link频道的URL必备http://www.goupstate.com/
Description频道的描述必备The latest news from GoUpstate.com, a  Spartanburg Herald-Journal Web site.
language频道文章所用语言,可用netscape或w3c推荐的列表可选en-us
copyright频道内容的版权说明可选Copyright 2002, Spartanburg  Herald-Journal
managingEditor责任编辑的email可选geo@herald.com (George  Matesky)
webMaster负责频道技术事务的网站管理员email可选betty@herald.com (Betty  Guernsey)
pubDate频道内容发布日期,格式遵循RFC822格式(年份可为2们或4位)可选Sat, 07 Sep 2002 00:00:01 GMT
lastBuildDate频道内容最后的修改日期可选Sat, 07 Sep 2002 09:42:31 GMT
category指定频道所属的一个或几个类别可选Newspapers
generator生成该频道的程序名可选MightyInHouse Content System  v2.3
docs指向该RSS文件所用格式说明的URL可选http://blogs.law.harvard.edu/tech/rss
cloudAllows processes to register with a cloud to be  notified of updates to the channel, implementing a lightweight publish-subscribe  protocol for RSS feeds. More info h可选
ttl有效期,用以指明该频道可被缓存的最长时间分钟为单位可选60
p_w_picpath指定一个 GIF或JPEG或PNG图片,用以与频道一起显示可选
rating这个频道的分级(主要指成人、限制、儿童等)可选
textInput指定一个text输入框供用户输入,具体信息及功能未定。可选
skipHours提示新闻聚合器,那些小时时段它可以跳过。可选
skipDays提示新闻聚合器,那些天它可以跳过。可选
RSS2.0元素channel的子元素p_w_picpath的子元素列表

元素(Element)描述值域重要性举例(Example)
url图片的url必备
title图片的标题,用于http的alt属性必备
link网站的url(实际中常以频道的url代替)必备
width图片的宽度(象素为单位)最大144,默认88可选
height图片的高度(象素为单位)最大400,默认31可选
description用于link的title属性可选

RSS2.0元素channel的子元素cloud的子元素列表

元素(Element)描述值域重要性举例(Example)
domainCloud程序所在机器的域名或IP地址radio.xmlstoragesystem.com
port访问clound程序所通过的端口80
path程序所在路径(不一定是真实路径)/RPC2
registerProcedure注册的可提供的服务或过程xmlStorageSystem.rssPleaseNotify
protocol协议xml-rpc, soap , http-post 之一xml-rpc

RSS2.0元素channel的子元素textInput的子元素列表

元素(Element)描述值域重要性举例(Example)
titleSubmit按钮的标签必备
description解释text输入区必备
nameText area对象的名字必备
link处理提交的请求的cgi程序必备

 


标题名称:C#实现RSS订阅
文章出自:http://cdxtjz.cn/article/gedhjo.html

其他资讯