読者です 読者をやめる 読者になる 読者になる

「Java」RSSライブラリ Informa で RSS フィードをパースしてみた

なんとなく RSS フィードをパースしてみたいなと思ったので、やってみました。その時のメモ。

ライブラリとしては、以下の「Informa」を使うことにしました。

・Informa: RSS Library for Java - Overview
http://informa.sourceforge.net/index.html

※ ググっていると「ROME」の方が情報多そうだったんですが、なんかドキュメントがええ感じに見れなかったりしたので、今回は却下で。

・Home - ROME - Confluence
https://rometools.jira.com/wiki/display/ROME/Home


RSS フィードのパースに関して、ドキュメント的には以下になるっぽいですが、これだけだとどんな情報取れるかわからない。なので、Eclipseデバッグ ( channel オブジェクトにあるプロパティを確認 ) しながらやってみました。

・Informa: RSS Library for Java - Quickstart
http://informa.sourceforge.net/quickstart.html

※ もちろん、API ドキュメント確認しながらでもいいですね ( 本当はこっちの方が常套手段か・・・ )。

・Overview (Informa API (Version 0.7.0-alpha2))
http://informa.sourceforge.net/apidocs/overview-summary.html


そんなこんなで、「ウェブサイトのタイトル、リンク」、「記事のタイトル、リンク」取得するサンプルが以下です。

■ RSSTest.java

import java.io.File;
import java.util.Set;

import de.nava.informa.core.ChannelIF;
import de.nava.informa.core.ItemIF;
import de.nava.informa.impl.basic.ChannelBuilder;
import de.nava.informa.parsers.FeedParser;

public class RSSTest {
	public static void main(String[] args) throws Exception {
		File inpFile = new File("rss.xml");
		ChannelIF channel = FeedParser.parse(new ChannelBuilder(), inpFile);
		// RSS フィード公開している URL を直接指定しても OK
		// ChannelIF channel = FeedParser.parse(new ChannelBuilder(), "http://a4dosanddos.hatenablog.com/rss");

		System.out.println(channel.getTitle());
		System.out.println(channel.getSite().toString());

		Set<ItemIF> items = channel.getItems();
		for (ItemIF item : items) {
			System.out.println(item.getTitle());
			System.out.println(item.getLink());
		}
	}
}

rss.xml

このブログの RSS ( http://a4dosanddos.hatenablog.com/rss ) を XML ファイルに保存してます・・・

■ 実行結果

プログラム日記
http://a4dosanddos.hatenablog.com/
「Java」Mybatis 使ってみた
http://a4dosanddos.hatenablog.com/entry/2014/02/09/193426
「Java」JDBC でデータベースに接続する
http://a4dosanddos.hatenablog.com/entry/2014/02/09/130420
「Java」秘密鍵/公開鍵で暗復号する
http://a4dosanddos.hatenablog.com/entry/2014/02/08/230953
「Java」jar ファイルを実行する
http://a4dosanddos.hatenablog.com/entry/2014/02/08/154916
「Java」キーストアから秘密鍵/公開鍵を取得する
http://a4dosanddos.hatenablog.com/entry/2014/02/08/144856
「WebLogic」JMX で MBean にアクセスする
http://a4dosanddos.hatenablog.com/entry/2014/02/05/014759
「Java」JMX さわってみた
http://a4dosanddos.hatenablog.com/entry/2014/02/05/001133

できた。以上です。

[ 環境情報 ]
Windows 7 SP1
Java SE 7 Update 45
informa-0.7.0-alpha2
※ 依存関係のあるライブラリも含んでる「informa-0.7.0-alpha2-with-dependencies.zip」をダウンロードしました。
上記サンプルであれば、ひとます「informa.jar」「jdom.jar」「commons-logging.jar」あたりだけで動きます。

・News Aggregation Library for Java - Browse Files at SourceForge.net
http://sourceforge.net/projects/informa/files/