「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 ( 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/