关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>网络编程>>ASPNET>>正文|如何利用.NET Framework使用RSS feed

如何利用.NET Framework使用RSS feed

[ 来路:21kn.com    时间:2007-7-8 17:53:54    点击: ]

 

  如果想利用.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 WebRequest

WebResponse myResponse = myRequest.GetResponse();

//Get the response's stream

Stream rssStream = myResponse.GetResponseStream();

  将RSS数据装载到XML文档中

  一旦我们从WebResponse(Web响应)对象得到了流,我们就将这个流下载到XmlDocument对象中了。这样我们就很容易对XML数据进行分析了,并能轻松地从中取值。得到XmlDocument装载Stream最简单的方法是,创建一个新的XmlDocument对象,并将我们的Stream传递给Load方法。Listing C为我们说明了这个方法的使用。

  Listing C

//Create the Xml Document

XmlDocument 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格式与这个格式不同。

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:ASP.NET 2.0 里输出文本格式流  下一篇:ASP.NET获取服务器IP与MAC地址的方法

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

ASP教程:详细学习ASP的内置对象

::图像设计::

 

动态图片搜索家——GIF RUNN
软件搜索利器——FileFerret
实例说明构图要讲规律
Character Builder让你尽展靓
全景图速成者Cool360
三维模型速成工具——Canoma
剪贴专家SmartBoard 32
新世纪的图像处理利器——Ph
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号