|
次に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(); を実装しました。このクラスのこのメソッドで、サイトの更新情報を配列で取得することができるようになりました。 ソースはこちらにあります。 この記事は 現在のアクセス:7007 |