隨着信息的發展,各種各樣的信息格式相繼出現。而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內容的方法:
- SyndFeed syndFeed = null;
- SyndFeedInput input = new SyndFeedInput();
- URLConnection urlConn = new URL(url).openConnection();
- urlConn.setConnectTimeout(5000);
- urlConn.setRequestProperty("User-Agent",
- "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
- //讀取RSS內容
syndFeed = input.build(new XmlReader(urlConn));
這樣就可以對得到的syndFeed進行獲取標題等操作了。
- List<SyndEntry> entries = syndFeed.getEntries();
- if (entries != null && !entries.isEmpty()) {
- for (SyndEntry syndEntry : entries) {
- map = new HashMap<String, String>();
- map.put("title", syndEntry.getTitle());
- map.put("link", syndEntry.getLink());
- mapList.add(map);
- }
把RSS的內容遍歷出來,加到一個List裏面方便管理使用。需要保存的話直接用SyndFeedOutput類中的output方法即可。
然後在onListItemClick方法裏邊進行Activity跳轉就OK啦,具體的代碼不多,自己就可以完成。
但是讀取RSS內容好慢啊,總共20條記錄,平均下載1條記錄要1s,人都要崩潰掉好了,似乎還有個rssutils這個jar也可以解析RSS,還沒測試過,不知道效果怎樣。就到這吧,其中有不對的地方,還望指出。謝謝!