1概要

RSS(Rich Site SummaryまたはReally Simple Syndication)は、さまざまな場所から集められたコンテンツを読者に提供するWebフィード標準です。ユーザーは自分のお気に入りのブログ、ニュースサイトなどで最近公開されたものをすべて1か所で確認できます。

アプリケーションはRSSを使用してRSSフィードを介して情報を読み取り、操作し、公開することもできます。

この記事では、Rome APIを使用してJavaでRSSフィードを処理する方法の概要を説明します。


2 Mavenの依存関係

プロジェクトにRome APIの依存関係を追加する必要があります。

<dependency>
    <groupId>rome</groupId>
    <artifactId>rome</artifactId>
    <version>1.0</version>
</dependency>

最新版はhttps://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22rome%22%20AND%20a%3A%22rome%22[Maven Central]にあります。


3新しいRSSフィードを作成する

まず、

SyndFeed

インターフェース

のデフォルト実装

SyndFeedImpl

を使用して、Rome API

で新しい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("https://rssblog.whatisrss.com/feed/");
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedSource));


9結論

この記事では、いくつかのエントリーでRSSフィードを作成する方法、フィードを公開する方法、および外部フィードを読む方法を説明しました。

いつものように、この記事https://github.com/eugenp/tutorials/tree/master/libraries[over on GitHub]で提供されている例をチェックすることができます。