Краткое руководство по 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.