浏览 5220 次
锁定老帖子 主题:Rome解析Rss
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-12
下面是一个简单的对Rome进行解析的操作,使用JUnit进行测试,Rome文件可以自己下载,具体代码如下: import java.net.URL; import java.util.List; import org.junit.Test; import com.sun.syndication.feed.synd.SyndCategory; import com.sun.syndication.feed.synd.SyndContent; import com.sun.syndication.feed.synd.SyndEnclosure; import com.sun.syndication.feed.synd.SyndEntry; import com.sun.syndication.feed.synd.SyndFeed; import com.sun.syndication.io.SyndFeedInput; import com.sun.syndication.io.XmlReader; public class TestParse { @Test public void parseRss() { String rss = "[url=http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss&sub=0]http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss&sub=0[/url]"; try { URL url = new URL(rss); // 读取Rss源 XmlReader reader = new XmlReader(url); System.out.println("Rss源的编码格式为:" + reader.getEncoding()); SyndFeedInput input = new SyndFeedInput(); // 得到SyndFeed对象,即得到Rss源里的所有信息 SyndFeed feed = input.build(reader); // 得到Rss新闻中子项列表 List entries = feed.getEntries(); // 循环得到每个子项信息 for (int i = 0; i < entries.size(); i++) { SyndEntry entry = (SyndEntry) entries.get(i); // 标题、连接地址、标题简介、时间是一个Rss源项最基本的组成部分 System.out.println("标题:" + entry.getTitle()); System.out.println("连接地址:" + entry.getLink()); SyndContent description = entry.getDescription(); System.out.println("标题简介:" + description.getValue()); System.out.println("发布时间:" + entry.getPublishedDate()); // 以下是Rss源可先的几个部分 System.out.println("标题的作者:" + entry.getAuthor()); // 此标题所属的范畴 List categoryList = entry.getCategories(); if (categoryList != null) { for (int m = 0; m < categoryList.size(); m++) { SyndCategory category = (SyndCategory) categoryList .get(m); System.out.println("此标题所属的范畴:" + category.getName()); } } // 得到流媒体播放文件的信息列表 List enclosureList = entry.getEnclosures(); if (enclosureList != null) { for (int n = 0; n < enclosureList.size(); n++) { SyndEnclosure enclosure = (SyndEnclosure) enclosureList .get(n); System.out.println("流媒体播放文件:" + entry.getEnclosures()); } } } } catch (Exception e) { e.printStackTrace(); } } } 上面就是具体的代码,有什么不明白的地方或不合理的地方还请指出,会及时做出调整。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-07
请教个问题,通过你上边的代码,做一个JSP,然后部署到weblogic814下边,我将地址改成错误地址,同时多个人访问的时候,你看看是不是延迟很长时间?
|
|
返回顶楼 | |
发表时间:2009-05-29
哦,兄弟你说的那个问题很正确,
URL url = new URL(rss); URLConnection uc = (HttpURLConnection) url.openConnection(); uc.setRequestProperty("User-agent", "IE/6.0"); //设置超时 uc.setConnectTimeout(3000); InputStream in = uc.getInputStream(); 使用上面这段代码就可以解决那个会等待的问题啦,只要设置一个连接超时时间就可以啦。 |
|
返回顶楼 | |