今天朋友问我怎么操作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进行解析提取数据:
string rsspath = "https://dabao.me/rss.php";//RSS地址 XmlDocument doc = new XmlDocument();//创建文档对象 try { doc.Load(rsspath);//加载XML 包括HTTP:// 和本地 } catch (Exception ex) { //异常处理 } XmlNodeList list = doc.GetElementsByTagName("item"); //获得项 foreach (XmlNode node in list) //循环每一项 { XmlElement ele = (XmlElement)node; string title = ele.GetElementsByTagName("title")[0].InnerText;//获得标题 string link = ele.GetElementsByTagName("link")[0].InnerText;//获得联接 string description = ele.GetElementsByTagName("description")[0].InnerText;//获得简介 //添加绑定操作 }
【转】RSS规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)
RSS 基于XML,所有的 RSS 必须遵循w3c网站上公布的XML 1.0 规范。
在一个RSS文档中,根元素是 <rss>,带有一个必备属性version,用以指明该文档遵循的rss规范,如果rss文档遵循本规范,则version值必须是2.0。
<rss>元素只有一个子元素,包含关于频道的一些信息。频道(channel)是整个blog,项(item)指一篇文章或日志(也有称这为post)。
RSS 基于XML,所有的 RSS 必须遵循w3c网站上公布的XML 1.0 规范。
在一个RSS文档中,根元素是 <rss>,带有一个必备属性version,用以指明该文档遵循的rss规范,如果rss文档遵循本规范,则version值必须是2.0。
<rss>元素只有一个子元素,包含关于频道的一些信息。频道(channel)是整个blog,项(item)指一篇文章或日志(也有称这为post)。
RSS2.0元素channel的子元素列表
RSS2.0元素channel的子元素image的子元素列表
元素(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) |
domain | Cloud程序所在机器的域名或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) |
title | Submit按钮的标签 | 必备 | ||
description | 解释text输入区 | 必备 | ||
name | Text area对象的名字 | 必备 | ||
link | 处理提交的请求的cgi程序 | 必备 |