1. Обзор
RSS (Rich Site Summary или Действительно Простая синдикация) – это стандарт веб-ленты, который предоставляет читателям агрегированный контент из разных мест. Пользователь может видеть, что недавно было опубликовано в его любимых блогах, новостных сайтах и т. Д. – Все в одном месте.
Приложения также могут использовать RSS для чтения, манипулирования или публикации информации через RSS-каналы.
В этой статье дается обзор того, как обрабатывать RSS-каналы на Java с помощью API Rome.
2. Зависимости Maven
Нам нужно добавить зависимость для API Rome в наш проект:
rome rome 1.0
Мы можем найти последнюю версию на Maven Central .
3. Создание нового RSS-канала
Во-первых, давайте создадим новый RSS-канал с API Rome , используя реализацию по умолчанию SyndFeedImpl интерфейса SyndFeed|/. Этот интерфейс способен обрабатывать все варианты 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-канал, теперь мы можем добавить в него запись. В приведенном ниже примере мы используем реализацию по умолчанию SyndEntryImpl интерфейса SyndEntry для создания новой записи:
SyndEntry entry = new SyndEntryImpl(); entry.setTitle("Entry title"); entry.setLink("http://www.somelink.com/entry1"); feed.setEntries(Arrays.asList(entry));
5. Добавление описания
Поскольку наша запись пока довольно пуста, давайте добавим к ней описание. Мы можем сделать это, используя реализацию по умолчанию SyndContentImpl интерфейса SyndContent |:
SyndContent description = new SyndContentImpl(); description.setType("text/html"); description.setValue("First entry"); entry.setDescription(description);
С помощью метода setType мы указали, что содержание нашего описания будет текстовым или HTML.
6. Добавление категории
Записи RSS часто классифицируются по категориям, чтобы упростить задачу поиска интересующих нас записей. Давайте посмотрим, как мы можем добавить категорию в запись , используя реализацию по умолчанию SyndCategoryImpl интерфейса SyndCategory :
Listcategories = 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 .