All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
SQL Server安全之加密术和SQL注入攻击_[SQL Server教程]
SQL Server安装:“安装文件配置服务器失败”的解决方法_[SQL Server教程]
学习PHP:详解mysql4.0以后的编码配置_php资料_编程技术
用XMLHTTP对象抓取网页源代码,拆分数据写入数据库_[XML教程]
动态网页技术PHP语法学习笔记_php资料_编程技术
smarty技术学习,修改php模板的一点体会_php资料_编程技术
Asp.net实例:实现图片上传_[Asp.Net教程]
SQL,Server,2008在商务智能上的三个优化_mssql学习_编程技术
SELECT,INTO,和,INSERT,INTO,SELECT,两种表复制语句_mssql学习_编程技术
ASP.NET从零起步设计网站全过程(4)_[Asp.Net教程]
Reading number is top 10 pictures
Cesarean section, bloody, silently into it!1
Is said to be a Chinese female artist fame explicit pictures before1
Take you to walk into the most true north Korea rural2
美女就是美女
美女浴室写真1
胸部遭到偷窥的女人们
湖南中医院的养生八图
大人物的礼物
The world first motorcycle will be auctioned for 21000 pounds
赵惟依写真1
Download software ranking
美女游泳记
Boxer's Top ten classic battle2
实战黑客不求人
Macromedia Dreamweaver 8
linux安装大全
Dance with duck(male prostitution)
The hero
Detective task-the top secret prostitution files
asp.netWeb服务器高级编程
WebService在.NET中的实战应用教学视频 → 第2集
delv published in(发表于) 2014/1/23 3:14:39 Edit(编辑)
如何利用.NET,Framework使用RSS,feed_[Asp.Net教程]

如何利用.NET,Framework使用RSS,feed_[Asp.Net教程]

如何利用.NET Framework使用RSS feed_[Asp.Net教程]

  如果想利用.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格式与这个格式不同。









添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.