Rome是一组Atom/Rss工具类,它使的用java来操作大部分syndication格式变的更加容易。
目前Rome的最新版本为0.9版,支持一下的格式:
RSS 0.90, RSS 0.91 Netscape,
RSS 0.91 Userland,
RSS 0.92,
RSS 0.93,
RSS 0.94,
RSS 1.0,
RSS 2.0,
Atom 0.3
Atom 1.0
Rome不仅包括各种syndication feeds的解析器与生成器。而且还能够把一种格式转换成另一种格式的转换器。
环境搭建:
1. 下载Rome
2. Rome是使用JDOM来解析XML的,则需要下载JDOM
3. jdk
将下载的ROME和JDOM的jar包设置到开发环境,本人使用MyEeclipse作为开发环境,只要将rome-0.9.jar和jdom.jar添加到项目的文件库中即可
用Rome解析Rss,首先要创建SyndFeed对象:
URLConnection feedUrl = new URL(" ..... ");
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.buld(new XmlReader(feedUrl));
通过SundFeed的对象,可以获得Rss源返回的信息如SyndFeed的getEntries方法可以返回一个List<SyndFeed>列表,用以表示Rss中的每一项内容。
List<SyndEntry> entries = feed.getEntries();
for(SyndEntry entry : entries){
String title = entry.getTitle();
Date publishDate = entry.getPublishDate();
String content = entry.getDescription()..getValue();
....................
}
部分源代码:
Vector<Rss> vector = new Vector<Rss>();
try {
String urlStr = "http://rss.sina.com.cn/news/marquee/ddt.xml";
java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input
.build(new XmlReader(feedUrl));
//从feed中得到entry
Rss rss = null;
List<SyndEntry> entries = feed.getEntries();
for (SyndEntry entry : entries) {
rss = new Rss();
rss.setTitle(entry.getTitle());
rss.setLink(entry.getLink());
rss.setTime(entry.getPublishedDate());
rss.setAuthor(entry.getAuthor());
vector.addElement(rss);
}
return vector;
} catch (Exception e) {
e.printStackTrace();
return null;
}