仓酷云
标题:
ASP.NET网站制作之怎样使用.NET Framework利用RSS feed
[打印本页]
作者:
因胸联盟
时间:
2015-1-16 22:49
标题:
ASP.NET网站制作之怎样使用.NET Framework利用RSS feed
我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?rss 假如想使用.NETFramework来利用RSSfeed的话,这实在其实不庞大。你只必要做上面几步就能够了:
◆链接到供应RSSfeed的网站
◆下载feedXML
◆将feed的XML装载到同意搜刮的工具中
◆为你想提取的结点搜刮feed的XML
.NETFramework供应了内置函数来完成一切的义务。我们所必要做的就是,将这些功效绑定在一同,如许我们就能够利用RSSfeeds。
链接到服务器
我们可使用WebRequest工具链接到服务器上。WebRequest工具使你能够在Web站点上贴出哀求,自从RSS经由过程HTTP传输后,WebRequest工具就成了链接服务器最次要的选择了。
ListingA中的代码告知我们,任何将一个新的WebRequest工具与一个URL举行毗连。
ListingA
//CreateaWebRequestobject
WebRequestmyRequest=WebRequest.Create(url);
复制代码
在这个例子中,也能够用完全URL的来代替RSSfeed中的“url”。上面是MSNAutomotiveRSSfeed的地点:http://rss-feeds.msn.com/autos/autosnews.xml
下载RSS数据
当我们毗连到服务器以后,我们必要下载feed供应的数据。WebRequest工具为完成这个目标供应了一个GetResponse()办法。WebRequest.GetResponse()办法前往一个WebRequest工具,这个工具依据我们的哀求给我们会见服务器的呼应。
在这里我们将用到WebResponse(Web呼应)工具的GetResponseStream()办法。这个办法前往一个Stream工具,这个工具中包括了服务器所呼应的原始RSSXML。ListingB中的代码告知我们怎样从WebRequest(Web哀求)工具失掉WebResponse(Web呼应)工具,和怎样从WebResponse(Web呼应)工具得呼应流。
ListingB
//GettheresponsefromtheWebRequest
WebResponsemyResponse=myRequest.GetResponse();
//Gettheresponsesstream
StreamrssStream=myResponse.GetResponseStream();
复制代码
将RSS数据装载到XML文档中
一旦我们从WebResponse(Web呼应)工具失掉了流,我们就将这个流下载到XmlDocument工具中了。如许我们就很简单对XML数据举行剖析了,并能轻松地从中取值。失掉XmlDocument装载Stream最复杂的办法是,创立一个新的XmlDocument工具,并将我们的Stream传送给Load办法。ListingC为我们申明了这个办法的利用。
ListingC
//CreatetheXmlDocument
XmlDocumentdocument=newXmlDocument();
//LoadthestreamintotheXmlDocumentobject.
document.Load(rssStream);
复制代码
剖析XML
这是利用RSSfeed最难的部分。我们必需利用方才创立的XmlDocument来失掉含有我们本人数据的XML结点。我们广泛感乐趣的结点是:
◆Feed的题目,它寄存在feedXML中的/rss/channel/title文件内里
◆Feed的文章,它寄存在feedXML中的/rss/channel/item文件内里。在这个地位大概有多个结点。
◆文章的题目,它寄存在文章结点中的title内里。
◆文章的形貌,它寄存在文章结点的description内里。
◆文章的链接,它寄存在文章结点的link内里。
我们可使用XmlDocument工具内置的SelectSingleNode函数和SelectNodes函数来失掉这些结点。这两个函数都能够承受XPath查询,也都能够前往与查询了局相婚配的一个或多个结点。
ListingD这段代码告知我们怎样利用XmlDocument和Xpath从RSSfeed平分析出每一个独自的元素。
ListingD
//GetanXmlDocumentobjectthatcontainsthefeedsXML
XmlDocumentfeedDocument=
GetXmlDocumentFromFeed("http://rss-feeds.msn.com/autos/autosnews.xml");
//CreateaXmlNamespaceManagerforournamespace.
XmlNamespaceManagermanager=
newXmlNamespaceManager(feedDocument.NameTable);
//AddtheRSSnamespacetothemanager.
manager.AddNamespace("rss","http://purl.org/rss/1.0/");
//GetthetitlenodeoutoftheRSSdocument
XmlNodetitleNode=
feedDocument.SelectSingleNode("/rss/channel/title",manager);
//Getthearticlenodes
XmlNodeListarticleNodes=
feedDocument.SelectNodes("/rss/channel/item",manager);
//Loopthroughthearticlesandextract
//theirdata.
foreach(XmlNodearticleNodeinarticleNodes)
{
//Getthearticlestitle.
stringtitle=
articleNode.SelectSingleNode("title",manager).InnerText;
//Getthearticleslink
stringlink=
articleNode.SelectSingleNode("link",manager).InnerText;
//Getthearticlesdescription
stringdescription=
articleNode.SelectSingleNode("description",manager).InnerText;
}
复制代码
不是一切的RSSfeed的创立都是不异的
假如一切的RSSfeed都利用不异的格局,它将变得更壮大,但是RSSfeed有很多分歧的版本和完成。在这篇文章中形貌的格局合适年夜部分的feed,大概有少部分的RSSfeed格局与这个格局分歧。
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。
作者:
精灵巫婆
时间:
2015-1-20 05:16
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者:
愤怒的大鸟
时间:
2015-1-26 15:45
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
作者:
只想知道
时间:
2015-2-4 15:50
那么,ASP.Net有哪些改进呢?
作者:
小妖女
时间:
2015-2-10 03:30
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
作者:
admin
时间:
2015-2-28 18:28
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
作者:
分手快乐
时间:
2015-3-10 04:06
主流网站开发语言之PHP
HP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
作者:
谁可相欹
时间:
2015-3-23 19:20
逐步缩小出错代码段的范围,最终确定错误代码的位置。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2