Top / Java / Pingアプリケーション / RSSを読み込むパーサ

次にRSSフィードをパースして、更新情報を取得するクラス(RSSReader)を作成します。RSSのパーサのJava実装は、RSS4jという便利なライブラリがありますので、それを使用します。

RSSフィードのうち、サイトの更新情報にあたるitemタグに該当する箇所:

<item rdf:about="http://www.masatom.in/pukiwiki/index.php?Java%2FPing%A5%A2%A5
    %D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%2FRSS%A4%F2%C6%C9%A4%DF%B9%FE%A4%E0%A5%D1%A1%BC%A5%B5">
  <title>Java/Pingアプリケーション/RSSを読み込むパーサ</title>
  <link>http://www.masatom.in/pukiwiki/index.php?Java%2FPing%A5%A2%A5%D7%A5%EA
    %A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%2FRSS%A4%F2%C6%C9%A4%DF%B9%FE%A4%E0%A5%D1%A1%BC%A5%B5</link>
  <dc:date>2006-02-25T15:21:49+09:00</dc:date>
  <dc:identifier>http://www.masatom.in/pukiwiki/index.php?Java%2FPing%A5%A2%A5
    %D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%2FRSS%A4%F2%C6%C9%A4%DF%B9%FE%A4%E0%
    A5%D1%A1%BC%A5%B5</dc:identifier>
</item>

は以下の処理で取得することができます。

List list = new ArrayList();
URL rssURL = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) rssURL.openConnection();
RssDocument doc = RssParser
        .parseRss(urlConnection.getInputStream());

Enumeration e = doc.channels();
// 要素は一つ
if (e.hasMoreElements()) {
    RssChannel channel = (RssChannel) e.nextElement();
    Enumeration enuma = channel.items();
    while (enuma.hasMoreElements()) {
        RssChannelItem item = (RssChannelItem) enuma.nextElement();
        list.add(item);

    }
}
logger.debug("getRssChannelItems() - end");
return (RssChannelItem[]) list.toArray(new RssChannelItem[list
        .size()]);

これを使って、更新情報を配列(型はRSS4jが提供してくれてるRssChannelItem?)で返すメソッド

public RssChannelItem[] getRssChannelItems();

を実装しました。このクラスのこのメソッドで、サイトの更新情報を配列で取得することができるようになりました。

ソースはこちらにあります


この記事は

選択肢 投票
おもしろかった 3  
そうでもない 0  

Top / Java / Pingアプリケーション / RSSを読み込むパーサ

現在のアクセス:6658


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-03-21 (水) 19:06:36 (4408d)