資源描述:
《用jsp實(shí)現(xiàn)基于web的rss閱讀器》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、用JSP實(shí)現(xiàn)基于Web的RSS閱讀器一:RSS介紹??根據(jù)維基百科(http://zh.wikipedia.org/wiki/RSS)的定義,“RSS是一種用于共享新聞和其他Web內(nèi)容的數(shù)據(jù)交換規(guī)范”,它是一系列的規(guī)范的組合,采用XML格式。目前國內(nèi)RSS應(yīng)用最多的是在新聞網(wǎng)站和博客網(wǎng)站上。??許多網(wǎng)站可以用RSS閱讀器來個(gè)性化自己的網(wǎng)頁,比如顯示最新的新浪新聞,顯示自己好朋友最新的博客文章,顯示最新的Google論壇內(nèi)容。除此之外,利用RSS閱讀器還可以實(shí)現(xiàn)其它用途,比如:·獲得天氣預(yù)報(bào)·接收郵件,比如Gmail就提供RSSfeed·獲取最新股票行情·
2、獲取音樂,電臺節(jié)目和視頻剪輯等等?二:Rome介紹??這篇文章采用Rome這個(gè)開源工具來實(shí)現(xiàn)RSS閱讀器。Rome支持的格式很多,有RSS0.90,RSS0.91Netscape,RSS0.91Userland,RSS0.92,RSS0.93,RSS0.94,RSS1.0,RSS2.0,Atom0.3,Atom1.0等等,幾乎囊括了目前所有的RSS和atom版本。最新的Rome版本可以從http://wiki.java.net/bin/view/Javawsxml/Rome上得到。??實(shí)現(xiàn)RSS閱讀器,主要采用Rome的解析功能,就是從XML文件中讀出相
3、應(yīng)的內(nèi)容。我用一些簡單代碼來說明如何使用Rome中的類和方法。URLfeedUrl=newURL("http://rss.sina.com.cn/news/marquee/ddt.xml");SyndFeedInputinput=newSyndFeedInput();SyndFeedfeed=input.build(newXmlReader(feedUrl));表一:得到RSSFeed??“http://rss.sina.com.cn/news/marquee/ddt.xml“是新浪新聞的一個(gè)RSS地址。通過三行代碼,就可以得到一個(gè)對應(yīng)這個(gè)地址的RSSF
4、eed對象。這個(gè)對象包含我們所需要的所有RSS內(nèi)容。如果用System.out.println(feed),會得到表二中的結(jié)果。從中可以清楚地看到SyndFeed類的結(jié)構(gòu)。SyndFeedImpl.contributors=nullSyndFeedImpl.title=新聞中心-新聞要聞SyndFeedImpl.categories[0].name=SyndFeedImpl.categories[0].taxonomyUri=nullSyndFeedImpl.link=http://news.sina.com.cn/iframe/o/allnews/in
5、put/index.htmSyndFeedImpl.publishedDate=ThuJun2213:20:01CST2006SyndFeedImpl.entries[0].updatedDate=nullSyndFeedImpl.entries[0].contributors=nullSyndFeedImpl.entries[0].title=扎瓦赫里在錄像帶中呼吁阿富汗人抵抗外國侵略SyndFeedImpl.entries[0].categories[0].name=SyndFeedImpl.entries[0].categories[0].taxo
6、nomyUri=nullSyndFeedImpl.entries[0].link=http://news.sina.com.cn/w/2006-06-22/11569270955s.shtmlSyndFeedImpl.entries[0].publishedDate=ThuJun2211:56:00CST2006SyndFeedImpl.entries[0].authors=nullSyndFeedImpl.entries[0].modules[0].descriptions=[]SyndFeedImpl.entries[0].modules[0].cr
7、eators[0]=WWW.SINA.COM.CNSyndFeedImpl.entries[0].modules[0].contributors=[]......SyndFeedImpl.author=nullSyndFeedImpl.copyright=Copyright1996-2005SINAInc.AllRightsReserved表二:SyndFeed數(shù)據(jù)結(jié)構(gòu)從上述輸出結(jié)果可以看出,每個(gè)新聞條目是由entry代表的。下列代碼從feed中得到entryListlist=feed.getEntries();for(inti=0;i8、e();i++){SyndEntryentry=(SyndEntry)list.