淺談Android中用rome解析RSS

       隨着信息的發展,各種各樣的信息格式相繼出現。而RSS這種聚合信息的技術也是在穩步發展,各大網站都有提供訂閱RSS服務,好用也實用。一般解析RSS其實就是解析xml文件,只是這種xml文件是符合RSS標準的。

       現在人手一部智能手機已是家常便飯,加上網絡的發展等等,新聞的推送和微博信息的推送都成了手機用戶的需求。而RSS就可以滿足這些需求,而解析RSS我選擇開源的rome,下面簡單地來看看Android平臺下怎麼用rome解析RSS。

       首先,rome似乎要依賴jdom,所以我們需要兩個jar包,而單單用官網上的jar是不能滿足android平臺下保存RSS內容的功能,說是缺少類,因此需要下載android版的rome和jdom的jar包,,它們可以在下面的地址下載到:

       https://code.google.com/p/android-rome-feed-reader/downloads/list

       好的,下載好之後add到項目的build path就可以用了。

      今天我們來實現ListView顯示標題,點擊item就用WebView打開新聞的鏈接看詳細內容這樣的一個功能。而我們主要是討論下解析RSS。效果如圖:

       下面來看下獲取RSS內容的方法:

  1. SyndFeed syndFeed = null
  2. SyndFeedInput input = new SyndFeedInput(); 
  3.  
  4. URLConnection urlConn = new URL(url).openConnection(); 
  5. urlConn.setConnectTimeout(5000); 
  6. urlConn.setRequestProperty("User-Agent",  
  7.         "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); 
  8.  
  9. //讀取RSS內容 
  10. syndFeed = input.build(new XmlReader(urlConn));   

       這樣就可以對得到的syndFeed進行獲取標題等操作了。

  1. List<SyndEntry> entries = syndFeed.getEntries(); 
  2. if (entries != null && !entries.isEmpty()) { 
  3.     for (SyndEntry syndEntry : entries) { 
  4.         map = new HashMap<String, String>(); 
  5.         map.put("title", syndEntry.getTitle()); 
  6.         map.put("link", syndEntry.getLink()); 
  7.         mapList.add(map); 
  8.     } 

       把RSS的內容遍歷出來,加到一個List裏面方便管理使用。需要保存的話直接用SyndFeedOutput類中的output方法即可。

       然後在onListItemClick方法裏邊進行Activity跳轉就OK啦,具體的代碼不多,自己就可以完成。

       但是讀取RSS內容好慢啊,總共20條記錄,平均下載1條記錄要1s,人都要崩潰掉好了,似乎還有個rssutils這個jar也可以解析RSS,還沒測試過,不知道效果怎樣。就到這吧,其中有不對的地方,還望指出。謝謝!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章