ローマとのRSSのクイックガイド
1. 概要
RSS(RichSiteSummaryまたはReallySimpleSyndication)は、さまざまな場所から集約されたコンテンツを読者に提供するWebフィード標準です。 ユーザーは、お気に入りのブログやニュースサイトなどで最近公開されたものをすべて1か所で確認できます。
アプリケーションは、RSSを使用して、RSSフィードを介して情報を読み取ったり、操作したり、公開したりすることもできます。
この記事では、RomeAPIを使用してJavaでRSSフィードを処理する方法の概要を説明します。
2. Mavenの依存関係
RomeAPIの依存関係をプロジェクトに追加する必要があります。
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
<version>1.0</version>
</dependency>
最新バージョンはMavenCentralで見つけることができます。
3. 新しいRSSフィードの作成
まず、SyndFeedインターフェースのデフォルト実装SyndFeedImplを使用して、RomeAPIで新しいRSSフィードを作成しましょう。 このインターフェースはすべてのRSSフレーバーを処理できるため、いつでも安全に使用できます。
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_1.0");
feed.setTitle("Test title");
feed.setLink("http://www.somelink.com");
feed.setDescription("Basic description");
このスニペットでは、タイトル、リンク、説明などの標準のRSSフィールドを使用してRSSフィードを作成しました。 SyndFeedは、著者、寄稿者、著作権、モジュール、公開日、画像、外国のマークアップ、言語など、さらに多くのフィールドを追加する機会を提供します。
4. エントリの追加
RSSフィードを作成したので、これでエントリを追加できます。 以下の例では、SyndEntryインターフェイスのデフォルト実装SyndEntryImplを使用して新しいエントリを作成します。
SyndEntry entry = new SyndEntryImpl();
entry.setTitle("Entry title");
entry.setLink("http://www.somelink.com/entry1");
feed.setEntries(Arrays.asList(entry));
5. 説明の追加
これまでのところエントリはかなり空なので、説明を追加しましょう。 これを行うには、SyndContentインターフェイスのデフォルト実装SyndContentImplを使用します。
SyndContent description = new SyndContentImpl();
description.setType("text/html");
description.setValue("First entry");
entry.setDescription(description);
setType メソッドを使用して、説明のコンテンツがテキストまたはHTMLになるように指定しました。
6. カテゴリの追加
RSSエントリは、関心のあるエントリを見つけるタスクを簡素化するために、多くの場合、カテゴリに分類されます。 SyndCategoryインターフェースのデフォルト実装SyndCategoryImplを使用して、エントリにカテゴリを追加する方法を見てみましょう:
List<SyndCategory> categories = new ArrayList<>();
SyndCategory category = new SyndCategoryImpl();
category.setName("Sophisticated category");
categories.add(category);
entry.setCategories(categories);
7. フィードの公開
すでにエントリ付きのRSSフィードがあります。 今、それを公開したいと思います。 この記事の目的上、公開とは、フィードをストリームに書き込むことを意味します。
Writer writer = new FileWriter("xyz.txt");
SyndFeedOutput syndFeedOutput = new SyndFeedOutput();
syndFeedOutput.output(feed, writer);
writer.close();
8. 外部フィードを読む
新しいフィードを作成する方法はすでに知っていますが、既存のフィードに接続する必要がある場合もあります。
URLを指定して、フィードを読み取り/ロードする方法を見てみましょう。
URL feedSource = new URL("http://rssblog.whatisrss.com/feed/");
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedSource));
9. 結論
この記事では、いくつかのエントリを含むRSSフィードを作成する方法、フィードを公開する方法、および外部フィードを読み取る方法を示しました。
いつものように、GitHubでこの記事で提供されている例を確認できます。