随着信息的发展,各种各样的信息格式相继出现。而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);
}