Краткое руководство по RSS с Римом

Краткое руководство по RSS с Римом

1. обзор

RSS (Rich Site Summary или Really Simple Syndication) - это стандарт веб-канала, который предоставляет читателям агрегированный контент из разных мест. Пользователь может видеть, что недавно было опубликовано в его любимых блогах, новостных сайтах и ​​т. Д. - и все это в одном месте.

Приложения также могут использовать RSS для чтения, обработки или публикации информации через RSS-каналы.

В этой статье дается обзор того, как обрабатывать RSS-каналы в Java с помощью Rome API.

2. Maven Зависимости

Нам нужно добавить зависимость для Rome API в наш проект:


    rome
    rome
    1.0

Последнюю версию можно найти наMaven Central.

3. Создание нового RSS-канала

Во-первых, давайте создадим новый RSS-канал с Rome APIusing the default implementation SyndFeedImpl of the SyndFeed interface. Этот интерфейс может обрабатывать все разновидности 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 gives the opportunity of adding many more fields, включая авторов, участников, авторские права, модули, даты публикации, изображения, иностранные разметки и языки.

4. Добавление записи

Поскольку мы создали RSS-канал, теперь мы можем добавить в него запись. В приведенном ниже примере мыuse the default implementation SyndEntryImpl of the SyndEntry interface для создания новой записи:

SyndEntry entry = new SyndEntryImpl();
entry.setTitle("Entry title");
entry.setLink("http://www.somelink.com/entry1");

feed.setEntries(Arrays.asList(entry));

5. Добавление описания

Поскольку наша запись пока довольно пуста, давайте добавим для нее описание. Мы можем сделать этоusing the default implementation SyndContentImpl of the SyndContent interface:

SyndContent description = new SyndContentImpl();
description.setType("text/html");
description.setValue("First entry");

entry.setDescription(description);

С помощью методаsetType мы указали, что содержание нашего описания будет текстом или HTML.

6. Добавление категории

RSS-записи часто классифицируются по категориям, чтобы упростить задачу поиска интересующих нас записей. Давайте посмотрим, как мы можем добавить категорию к записиusing the default implementation SyndCategoryImpl of the SyndCategory interface:

List 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 с некоторыми записями, как опубликовать канал и как читать внешние каналы.

Как всегда, вы можете ознакомиться с примерами из этой статьиover on GitHub.