ないブログに表示されています。新しい記事を書く事で広告が消えます。-コメントただいまコメントを受けつけておりません。JavaFXでRSSを作成・読込・表示(ROMEライブラリ)JavaFXでRSSを作成・読込・表示(ROMEライブラリ)JavaでRSSを作成・読込するライブラリとしてROMEが有名である。現在(2016年4月)の最新バージョンは1.7であるが、利用方法を調べてみるとバージョン1.0あたりの導入方法くらいしか見つからなかった。理由としては公式ウェブサイトがバージョン1.0までしか更新しておらずGithub上の最新リソースへのリンクがないことや、googleで検索する際にイタリアのローマが検索に引っかかったり、バージョンが上がって依存ライブラリが多くなったことや......まあ、いろいろ問題があるような気がする。今回は、筆者のように「ライブラリ使うなら最新バージョン使うのが普通だよね」という人向けに、ROME1.7の利用方法についてみていく。JavaFXと銘打っているが、ROME自体はwebアプリやAndroidでの利用も可能である。ROMEライブラリROMEライブラリはRSSを作成・読込を行うためのライブラリである。2.0であるため、商用利用も可能である。RSSには多くの規格があるが、ROMEライブラリではそれらを自動的に判別して読み込んでくれるのがよい点。ApacheにもRSSリーダであるFeedparserというプロジェクトがあるが、Feedparserの公式サイトでも気に入らなければROMEを使えばいいと書いてあるほど評価は高いようだ(*1)。ROME及び依存ライブラリは以下のとおりである。以下のライブラリをクラスパスに登録する必要がある(クラスパスの登録方法は別記事参照)。コンパイルにはMavenが必要。Repository→コンパイル済Jar。キャッシュ機能を利用する場合のみ必要。Fetcherライブラリでキャッシュを行うのが普通だったが、ROME1.6からは非推奨となった。代わりにHttpClientを利用するよう推奨している(*2)。ROMEに関するチュートリアルは公式サイトに存在する(*3)。バージョン1.0を前提としたチュートリアルなので、少し異なる箇所があるかもしれない。サンプル・プログラム(RSS読込)以下にROME1.7を利用してRSSを読込・表示するサンプルプログラムを示す。サンプルでは、イラストレイター向けのSNS『Drawr』のRSSを読み込み、表示している。RSSフィードを読み込み(キャッシュ機能付き)。RSSの読み込みには時間がかかるため、別スレッドとして実行するようにプログラムを組んでいる(63行目~107行目)。RSS読み込みロジック自体はTask::call関数(68行目~98行目)で行っている。Task::call関数内の処理は、キャッシュ機能つきのHTTP通信(74行目~81行目)で対象のRSSファイルをInputStreamとして読み込んだ後、RSSの解析を行いエントリーを変数feedに代入(83行目~84行目)、それらを画面に表示している(90行目~98行目)。エントリーを画面に出力するための処理はcreateDrawEntry関数(96行目、116行目~146行目)で行っている。サンプル・プログラム(RSS作成)以下にROME1.7を利用してRSSを作成するサンプルプログラムを示す。サンプルでは10つの記事を含むRSSファイルを『rss.xml』という名前で保存している。</channel></rss>◇解説RSSの作成はSyndFeedOutput::output関数で行っている(66行目~67行目)。フィードデータと内部の記事データは、それぞれSyndFeedクラス・SyndEntryクラスで表される。連絡はContactよりお願いします。忍者ブログ©軽Lab。