欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【如何利用.NET Framework使用RSS feed】,下面是详细的分享!
如何利用.NET Framework使用RSS feed
如果想利用.NET Framework来使用RSS feed的话,这其实并不复杂。你只需要做下面几步就可以了:
◆链接到提供RSS feed的网站
◆下载feed XML
◆将feed的XML装载到允许搜索的对象中
◆为你想提取的结点搜索feed的XML
.NET Framework提供了内置函数来完成所有的任务。我们所需要做的就是,将这些功能绑定在一起,这样我们就可以使用RSS feeds。
链接到服务器
我们可以使用WebRequest对象链接到服务器上。WebRequest对象使你可以在Web站点上贴出请求,自从RSS通过HTTP传输后,WebRequest对象就成了链接服务器最主要的选择了。
Listing A中的代码告诉我们,任何将一个新的WebRequest对象与一个URL进行连接。
Listing A
| 以下为引用的内容: //Create a WebRequest object WebRequest myRequest=WebRequest.Create(url); |
在这个例子中,也可以用完整URL的来取代RSS feed中的“url”。下面是MSN Automotive RSS feed的地址:http://rss-feeds.msn.com/autos/autosnews.xml
下载RSS数据
当我们连接到服务器之后,我们需要下载feed提供的数据。WebRequest对象为实现这个目的提供了一个GetResponse()方法。WebRequest.GetResponse()方法返回一个WebRequest对象,这个对象根据我们的请求给我们访问服务器的响应。
在这里我们将用到WebResponse(Web响应)对象的GetResponseStream()方法。这个方法返回一个Stream对象,这个对象中包含了服务器所响应的原始RSS XML。Listing B中的代码告诉我们如何从WebRequest(Web请求)对象得到WebResponse(Web响应)对象,和如何从WebResponse(Web响应)对象得响应流。
Listing B
| 以下为引用的内容: //Get the response from the WebRequestWebResponse myResponse=myRequest.GetResponse(); //Get the response's streamStream rssStream=myResponse.GetResponseStream(); |
将RSS数据装载到XML文档中
一旦我们从WebResponse(Web响应)对象得到了流,我们就将这个流下载到XmlDocument对象中了。这样我们就很容易对XML数据进行分析了,并能轻松地从中取值。得到XmlDocument装载Stream最简单的方法是,创建一个新的XmlDocument对象,并将我们的Stream传递给Load方法。Listing C为我们说明了这个方法的使用。
Listing C
| 以下为引用的内容: //Create the Xml DocumentXmlDocument document=newXmlDocument(); //Load the stream into the XmlDocument object. document.Load(rssStream); |
分析XML
这是使用RSS feed最难的部分。我们必须使用刚才创建的XmlDocument来得到含有我们自己数据的XML结点。我们普遍感兴趣的结点是:
◆Feed的标题,它存放在feed XML中的/rss/channel/title文件里面
◆Feed的文章,它存放在feed XML中的/rss/channel/item文件里面。在这个位置可能有多个结点。
◆文章的标题,它存放在文章结点中的title里面。
◆文章的描述,它存放在文章结点的description里面。
◆文章的链接,它存放在文章结点的link里面。
我们可以使用XmlDocument对象内置的SelectSingleNode函数和SelectNodes函数来得到这些结点。这两个函数都可以接受XPath查询,也都可以返回与查询结果相匹配的一个或多个结点。
Listing D这段代码告诉我们如何使用XmlDocument和Xpath从RSS feed中分析出每个单独的元素。
Listing D
| 以下为引用的内容: //Get an XmlDocument object that contains the feed's XML XmlDocument feedDocument=GetXmlDocumentFromFeed("http://rss-feeds.msn.com/autos/autosnews.xml"); //Create a XmlNamespaceManager for our namespace. XmlNamespaceManager manager= newXmlNamespaceManager(feedDocument.NameTable); //Add the RSS namespace to the manager. manager.AddNamespace("rss", "http://purl.org/rss/1.0/"); //Get the title node out of the RSS document XmlNode titleNode= feedDocument.SelectSingleNode("/rss/channel/title", manager); //Get the article nodes XmlNodeList articleNodes= feedDocument.SelectNodes("/rss/channel/item", manager); //Loop through the articles and extract // their data. foreach (XmlNode articleNode in articleNodes) { //Get the article's title. string title= articleNode.SelectSingleNode("title", manager).InnerText; //Get the article's link string link= articleNode.SelectSingleNode("link", manager).InnerText; //Get the article's description string description= articleNode.SelectSingleNode("description", manager).InnerText; } |
不是所有的RSS feed的创建都是相同的
如果所有的RSS feed都使用相同的格式,它将变得更强大,然而RSS feed有许多不同的版本和实现。在这篇文章中描述的格式适合大部分的feed,可能有少部分的RSS feed格式与这个格式不同。
以上所分享的是关于如何利用.NET Framework使用RSS feed,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何寻找和订阅有趣的 RSS feed?
答:然後按一下右边的加入连结。 画面上随後会开启一个「加入内容」视窗,里面有许多有趣的 feed,即消息来源。这里,我们向你介绍两种查找方法﹕ 如果你知道你感兴趣的内容,则只需使用搜寻视窗。 输入关键字或某一网站的 RSS URL。 你可用关键字在... >>详细
相关问题:RSS Feed是什么软件?
答:rss是一种用于共享新闻和其他Web内容的数据交换规范,起源于网景通讯公司的推"Push"技术,将订户订阅的内容传送给他们的通讯协同格式(Protocol)。是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),在Blog开始盛行的时候得到广... >>详细
相关问题:怎样在网站上找到rss feed,将其加入rss read?
答:那要看用什么浏览器埃 IE是不提示的。用傲游的话,一般是在右下角出来提示框。 推荐你用Firefox,在地址栏就能看到订阅。 还有你看有的网站有RSS的图标,点一下出来的页面的地址就是Feed地址,把这个Feed地址加到阅读器中就能看了。 来我建的RSS... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
