Консолидация RSS-канала в ридере

По спецификации RSS 2.0 элементы link, title и description являются обязательными. Однако на самом деле любой из этих трех может отсутствовать. Я читаю данные из нескольких фидов и хочу отображать их одинаковым образом. Как я могу объединить данные?


person Vlasec    schedule 25.06.2013    source источник


Ответы (1)


Чтобы упростить действительно простую синдикацию, вы можете сделать эти элементы в результирующем объекте/таблице:

ссылка. Существует несколько элементов, которые могут содержать ссылку. Кроме самого <link>, есть <guid>. Если permalink="true", то это хорошая ссылка. Если не постоянная ссылка, то это тоже может быть ссылка, но она может никуда не вести. Также может быть <enclosure> (один или несколько), однако они ссылаются на файлы или потоки, а не на веб-страницы.

title - Если <title> нет, можно взять кусок <description>, но убрать из него весь HTML.

описание. Если <description> нет, оставьте поле пустым.

руководство — если его нет, выберите первую доступную комбинацию из следующих:

link-<pubDate>, link-title, link, title-<pubDate>, title, <pubDate>

Сгенерированный guid не обязательно должен быть действительно уникальным, помните об этом.

pubDate — если вы должны показать какую-то дату, а ее нет, создайте ее при сохранении.

person Vlasec    schedule 25.06.2013
comment
Будьте осторожны с ‹guid› содержит ссылки. Иногда они выглядят как ссылки, но на самом деле ни на что не указывают... на самом деле это направляющие, и их содержание не должно интерпретироваться как имеющее какой-либо значимый смысл. - person Julien Genestoux; 25.06.2013
comment
Спасибо, я это знал, но забыл упомянуть. Кроме того, я не нашел <uri> или <url> ни в одной спецификации, поэтому теперь мне интересно, почему они присутствуют в com.sun.syndication.feed.rss.Item Java. - person Vlasec; 25.06.2013