argius note

プログラミング関連

RSS・Atomフィードのためのライブラリ"ROME"

RSSリーダを作るには、

  • フィードデータ(XML)をダウンロード
  • フィードを解析(パース)
  • 更新日時のチェック

などの処理を書けばできそう。でも、RSSAtomはバージョンが何種類もあるので、それらの仕様を全て調べるのはちょっと大変。
そこで、"ROME"を使います。"ROME"はRSSAtomのフィードを操作するためのライブラリで、フィードのパージングだけでなく、フィード生成と発行をサポートします。


以下はサンプルプログラム。
適当なROMEのバイナリ(rome-*.jar)と、XMLパーザのJDOMライブラリ(jdom*.jar)が必要です。この2つをクラスパスに設定して、以下のプログラムを実行します。argsに適当なフィードURLを指定してください。フィード内のエントリのタイトルと更新日時を表示します。後は更新日時をチェックすればRSSリーダ的なことができそうです。

public static void main(String[] args) {
    SyndFeedInput input = new SyndFeedInput();
    for (String urlString : args) {
        try {
            URL url = new URL(urlString);
            Reader reader = new XmlReader(url.openStream());
            try {
                SyndFeed feed = input.build(reader);
                @SuppressWarnings("unchecked")
                List<SyndEntry> entries = feed.getEntries();
                for (SyndEntry entry : entries) {
                    System.out.printf("%s\t%s%n", entry.getTitle(),
                                                  entry.getUpdatedDate());
                }
            } finally {
                reader.close();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

SyndEntryの詳細はrome: SyndEntry (ROME, RSS and atOM utilitiEs for Java 1.0 API)をご覧下さい。