本文来自http://blog.csdn.net/chenshaoyang0011 RSS 以及 RSS 的 xml 解析中可能会遇到的一些问题之后,本文将介绍如何展示内容信息。 从 RSS 站点提供的 xml 中,我们得到的是新闻的列表,每条新闻中会给出详细内容的链接,因此最简单的处理展示内容的方式
本文来自http://blog.csdn.net/chenshaoyang0011
RSS以及RSS的xml解析中可能会遇到的一些问题之后,本文将介绍如何展示内容信息。
从RSS站点提供的xml中,我们得到的是新闻的列表,每条新闻中会给出详细内容的链接,因此最简单的处理展示内容的方式就是直接用WebView来加载链接或者调用系统中的浏览器来展示内容。但是这样给人的用户体验就不太好了,毕竟在手机上浏览网页(尤其是PC网页)的体验是难以让人满意的。这样以来,就需要我们对加载的网页进行转码(参见ZAKER),再用webView进行显示。
那么首先就需要对html代码进行修改,解析修改html的工具有很多,我用的是Jsoup,关于如何使用Jsoup网上可以找到许多相关的教程,这里就不再赘述了。这是Jsoup的主页http://jsoup.org/。
下面是一个简单的转码示例,测试网址为http://www.cnbeta.com/articles/228678.htm下面代码片段实现的效果是剔除掉超链接,将多余的内容剔除值留下需要的内容。
Document doc = null;
try {
doc = Jsoup.parse(new URL(mUrl), 15000);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
if(doc == null)
return null;
//删除javascript代码
Elements es = doc.select("script");
if(es != null){
es.remove();
}
//去除超链接
Elements hrefs = doc.getElementsByTag("a");
for(Element href : hrefs){
href.removeAttr("href");
}
//去除多余的内容
Element content = doc.getElementById("news_content");
content.getElementsByClass("digbox").remove();
content.getElementsByTag("a").remove();
然后再使用WebView加载修改后的html内容。
//content即已经修改后的html
String html = content.html();
webView.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);
这样简单的html转码和内容显示就完成了,最后附上demo的链接http://download.csdn.net/detail/chenshaoyang0011/5114964