IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  XML  >

Введение в новостные RSS-каналы

Использование открытых форматов для доставки контента

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: простой

Джеймс Левин (James Lewin), президент , The Lewin Group

10.11.2000

Краткое RDF-описание сайта (RSS) является одним из наиболее широко используемых XML-форматов в Web. В данной статье описано, как создать и использовать файлы RSS-каналов, а также описаны их возможности. Будет показано, почему такие компании как Netscape, Userland и Moreover используют RSS-каналы для распределения и доставки обзоров и заголовков статей. В данную статью включен пример программы с элементами файла RSS-канала, а также пример на языке Perl, использующий модуль XML::RSS.

Файлы краткого RDF-описания сайтов (RSS) основаны на XML и предоставляют открытый способ доставки и объединения Web-контента. С помощью формата RSS можно создавать каналы данных, содержащие заголовки, ссылки и краткое изложение статей с Web-сайтов. Эти файлы описывают канал информации, который может включать логотип, ссылку на сайт, поле ввода и несколько "информационных сюжетов". На страницы других сайтов эту информацию можно добавлять автоматически. Можно также использовать RSS-каналы с других сайтов для размещения на своем сайте текущих сводок новостей или статей по интересным темам. Такие способы позволяют привлечь больше посетителей, заинтересованных в самой последней информации.

Что представляют собой метаданные?
Файл RSS-каналов представляют собой тип метаданных. Метаданные:
  • единицы информации об информации;
  • обычно используются для описания контента, контекста и характеристик данных.
Примерами метаданных являются HTML-метатеги keywords и description, предоставляющие сведения о Web-страницах.

Формат RSS берет начало на сайтах My Netscape и My UserLand, оба из которых объединяли контент, поставляемый из новостных XML-каналов. Это одно из простейших XML-приложений, поэтому RSS-канал популярен среди многих разработчиков при необходимости выполнения подобных задач. Пользователи Moreover, Meerkat, UserLand и древовидной структуры XML. В данной статье описан формат RSS и некоторые модули Perl с открытым исходным кодом, позволяющие легко использовать файлы RSS-каналов.

Что точно представляют собой файлы RSS-каналов?

Файлы RSS-каналов представляют собой метаданные (см. врезку Что представляют собой метаданные?). Пока они не используются или если не показано на примере, довольно сложно понять, что представляют собой файлы RSS-каналов, но эти файлы легко создать. Как правило, файл RSS-канала содержит четыре элемента основного типа: канал, изображение, позиции и текстовый ввод. Эти элементы легко идентифицируются и кодируются (см. пример на листинге 1). В примере элемента файла RSS 0.91 на листинге 1 содержится три четко выделенных части: название, ссылка и описание.


Листинг 1. Пример элемента в RSS-канале
                
<item>
  <title>Mozilla Dispenses with Old, Proprietary DOM</title>
                
<link>http://www.mozillazine.org/talkback.html?article=604</link>
<description>The Mozilla team has decided to forgo backwards compatibility with Netscape's proprietary DOM.</description>

В заголовке публикуются коллекции в результате объединения файлов RSS. HTML, как правило, используется для отображения указанного названия в виде заголовка. Название также обычно служит в кaчестве ссылки, используя URL-адрес, указанный в элементе link. Наконец, описание обычно представлено в виде краткого содержания статьи, расположенной под заголовком.



В начало


Создание файлов RSS-каналов

Можно создавать файлы RSS-каналов в соответствии с предложенной спецификацией RSS 1.0 или в соответствии с более популярной спецификацией RSS 0.91. Для рабочих приложений используйте RSS 0.91, предложенная спецификация 1.0 все еще находится на рассмотрении. Раздел Ресурсы включает ссылки на обе спецификации - 1.0 и 0.91, предоставляющие подробный обзор всех элементов. Данное обсуждение относится к наиболее общим используемым элементам, все примеры в статье относятся к формату 0.91.

Между предлагаемой спецификацией 1.0 и форматом 0.91 имеется одно значительное различие: спецификация 1.0 включает элементы среды описания ресурсов (RDF), обеспечивающие большую гибкость за счет некоторого увеличения сложности. Данная предложенная спецификация является более гибкой, описывает стандарт W3C для файлов RSS-каналов, удовлетворяющий текущим потребностям, будет совместима с предыдущими версиями, а также адаптирована к будущим требованиям.

Обе версии спецификации имеют общую характеристику - простой формат, который разработчики могут использовать в различных целях.

RSS-канал представляет собой XML-файл. Поэтому все RSS-документы начинаются с объявления XML 1.0, затем идет объявление типа документа RSS (см. листинг 2).


Листинг 2. XML-объявление
                
<?xml version="1.0"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
 "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">

В первой строке объявляется XML-документ. Во второй строке находится объявление DTD, определяющее, что данный XML-файл основан на определении типа документа (DTD) RSS 0.91 компании Netscape. Наконец, начало контента файла RSS-канала отмечается корневым элементом, все содержимое находится между тегами <rss version "0.91"> и </rss>.



В начало


Четыре основных раздела файла RSS-канала

Четыре основных раздела файла RSS-канала находятся после корневого элемента. К ним относятся разделы channel, image, item и text input. На практике элементы channel и item необходимы для любого рабочего файла RSS-канала, элементы image и text input являются дополнительными.

Раздел channel

Элемент channel содержит метаданные, описывающие собственно канал: что он собой представляет и кто его создал. Раздел channel является необходимым элементом и включает имя канала, его описание, язык и URL-адрес. Как правило, URL-адрес используется для указания на источник информации канала.

В листинге 3 показано начало элемента channel. В данной части элемента channel определяется канал и приводятся сведения о канале.


Листинг 3. Элемент channel
                
<channel>
  <title>MozillaZine</title>
                
<link>http://www.mozillazine.org</link>
<description>Your source for Mozilla news, advocacy, interviews, builds, and more! </description>
<language>en-us</language> </channel>

Элемент channel содержит остальные теги канала, описывающие канал и позволяющие отображать его содержимое в HTML. Тег title можно рассматривать как ссылку на заголовок со следующим описанием. Определение языка канала позволяет накопителям фильтровать новостные каналы и предоставляет программе визуализации информацию, необходимую для правильного отображения языка.

Тег </channnel> размещается после всех элементов канала и используется как закрывающий тег. RSS соответствует спецификациям XML, поэтому раздел element должен быть оформлен правильно; для него необходимо использовать закрывающий тег.

В соответствии со спецификацией канала 0.91 можно включить девять дополнительных тегов. Примерами каналов являются PICS Rating, Copyright Identifier, Publication Date и Webmaster. Эти дополнительные элементы можно использовать в различных целях. Например, сайты, объединяющие контент, могут использовать такую дополнительную мета-информацию для разрешения пользователям фильтровать новостные каналы на основе рейтингов Platform for Internet Content Selection (PICS). Дополнительную информацию о других тегах канала см. в спецификации RSS.

Раздел image

Элемент image не является обязательным и обычно используется для включения логотипа поставщика канала. Размер изображения по умолчанию составляет 88 пикселей в ширину и 31 пиксел в высоту, хотя логотип можно увеличить до размера 144 на 400 пикселей. Далее показан пример элемента image:


Листинг 4. Элемент image
                
<image>
  <title>MozillaZine</title>
                
<url>http://www.mozillazine.org/image/mynetscape88.gif</url>
<link>http://www.mozillazine.org</link>
<width>88</width>
<height>31</height> </image>

Теги элемента title, URL, link, width и height позволяют средствам визуализации преобразовать файл в HTML-формат. Тег title обычно используется для текста изображения ALT. По возможности не увеличивайте изображение больше размера 88 x 31 пиксел, потому что многие средства визуализации преобразуют каналы в таблицы фиксированной ширины менее 100 пиксел. Большие графические изображения могут привести к нежелательному разрыву таблиц, или изображение не будет показываться вообще.

Элемент item

Элемент item является самым важным элементом канала и обычно составляет динамическую часть RSS-канала. Если элементы channel, image и text input определяют идентичность канала и не изменяются в течение длительных периодов времени, элементы канала item отображаются как новостные заголовки, ценность канала зависит от их частого изменения. Далее показан пример элемента канала item:


Листинг 5. Элемент item
                
<item>
  <title>Java2 in Navigator 5?</title>
                
<link>http://www.mozillazine.org/talkback.html?article=607</link>
<description>Will Java2 be an integrated part of Navigator 5? Read more about it in this discussion...</description> </item>

Для канала можно использовать до 15 элементов item. Это разумное ограничение, так как каналы в основном используются для распространения последнего Web-контента. Длина названий не должна превышать 100 символов, длина описаний - 500 символов. Название элемента item обычно отображается как заголовок со ссылкой на всю статью, URL-адрес которой определяется тегом link. Описание элемента item обычно используется для краткого обзора содержимого статьи или для комментария к статье. Новостные каналы используют описание для выделения содержимого новых статей, обычно на сайте владельца канала, каналы Web-журналов используют описание для предоставления комментариев к различному контенту, часто взятому со сторонних сайтов.

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

Элемент text input

Область text input является дополнительным элементом, для канала можно использовать только один элемент. Обычно элемент text input отображается в виде HTML-формы и позволяет пользователям реагировать на канал. Эту функцию можно использовать для разрешения пользователям подписываться на информационный бюллетень или выполнить поиск по сайту. Далее показан пример элемента text input:


Листинг 6. Элемент text input
                
<textinput>
  <title>Send</title>
                
<description>Comments about MozillaZine?</description>
<name>responseText</name>
<link>http://www.mozillazine.org/cgi-bin/sampleonly.cgi</link> </textinput>

Тег title обычно отображается в виде текста на кнопке отправки формы, тег description - в виде текста до или над полем ввода. Тег name элемента text input отправляется вместе с содержимым текстового поля при нажатии кнопки Submit.

Это четыре основных элемента файла RSS-канала. После добавления элементов image, item и text input на забудьте добавить закрывающий тег </channel> и тег закрытия RSS-канала </rss>.

Рассматриваемая спецификация RSS 1.0 включает модули, позволяющие расширить RSS-канал для поставки дополнительной информации без необходимости переписывать спецификацию. Например, можно написать модуль для добавления к каналу мультимедийных данных для клиентов с широкополосным доступом, тогда как для обычных клиентов по-прежнему будут отображаться заголовки и описания. Можно изучить модули подробней и использовать их преимущества после принятия спецификации 1.0.



В начало


Работа с файлами RSS-каналов

Имеется несколько способов начать использовать файлы RSS-каналов. Файлы RSS-каналов являются простыми, поэтому их можно создавать с помощью любого текстового редактора или XML-редактора. Также имеются сайты с Web-формами, позволяющие создавать пользовательские файлы RSS-канала в оперативном режиме. Наконец, можно также попробовать создавать файлы RSS-каналов автоматически. Инструментальные средства с открытым исходным кодом для Java, PHP и Perl могут оказаться полезными (см. в разделе Ресурсы дополнительные примеры).

После создания простого файла RSS-канала его можно проверить. Это можно сделать на сайте Netscape, указанном в разделе Ресурсы . Разместите файл RSS-канала в общедоступной области Web-сайта, перейдите на сайт Netscape, введите URL-адрес своего канала, и средство проверки протестирует файл на совместимость.



В начало


Публикация RSS-файла

Когда на Web-сайте имеется допустимый файл RSS-канала, можно выполнять доставку контента. Это можно сделать в виде публикации и подписки - информация публикуется, любой желающий может на нее подписаться - или можно отправить свой URL-адрес в такую систему как Moreover или Userland. Такие компании занимаются объединением контента с различных сайтов и его публикацией в виде каналов. Хотя информация с вашего сайта может смешиваться с контентом других поставщиков, агрегаторы могут значительно улучшить границы распространения информации.

Файлы RSS-каналов также можно использовать для частного распространения в локальных или корпоративных сетях. Благодаря своей простоте файлы RSS-каналов являются хорошим способом публиковать информацию в различных системах.



В начало


Анализ файлов RSS

Начав использование файлов RSS-каналов, потребуется выполнять обратный анализ этих файлов и разбивать их на отдельные блоки данных. Это можно делать с помощью различных инструментальных средств с открытым исходным кодом, написанных на Java, Perl, PHP и даже ASP. Анализатор языка считывает поток XML-текста, определяет открывающие и закрывающие теги, находит текст, заключенный в тегах, и создает указатели для работы с проанализированной информацией. После выполнения анализа эту информацию можно включить в динамически создаваемые страницы.

В листинге 7 показана простая программа на Perl, считывающая файлы RSS-каналов. Даже если пользватель не работает на Perl, в примере содержится несколько идей, которые можно использовать в собственной среде разработки.

Perl представляет собой замечательный язык для манипуляций с файлами RSS-каналов; наличие достаточного количества открытого кода позволяет легко начать работу с Perl. Джонатан Айзенцопф (Jonathan Eisenzopf) разработал модуль XML::RSS для создания и анализа файлов RSS-каналов. Чтобы воспользоваться преимуществами этого анализатора, потребуется модульXML::Parser. Эти два модуля Perl можно бесплатно загрузить на CPAN (см. раздел Ресурсы).

Далее приводится пример использования модуля XML:RSS:


Листинг 7. Пример на Perl с использованием модуля XML::RSS
                
# Setup includes
use strict;
use XML::RSS;
use LWP::Simple;
# Declare variables for URL to be parsed
my $url2parse;
# Get the command-line argument
my $arg = shift;
# Create new instance of XML::RSS
my $rss = new XML::RSS;
# Get the URL, assign it to url2parse, and then parse the RSS content
$url2parse = get($arg);
die "Could not retrieve $arg" unless $url2parse;
$rss->parse($url2parse);

Данный пример кода передает URL-адрес в сценарий Perl для анализа. После выполнения анализа элементы файла RSS можно использовать различными способами. Например, элементы RSS можно использовать для создания списка заголовков:


Листинг 8. Создание заголовков с помощью Perl
                
# Print the channel items
foreach my $item (@{$rss->{'items'}}) {
     next unless defined($item->{'title'}) && defined($item->{'link'});
     print "<li><a href=\"$item->{'link'}\">$item->{'title'}</a><BR>\n";
}

В данном примере просматривается массив элементов RSS, у каждого элемента проверяется наличие названия и ссылки. Неполные элементы пропускаются; остальные включаются в список заголовков.

Если планируется использовать модуль XML::RSS, его можно открыть и просмотреть в любом текстовом редакторе; в модуле содержится множество комментариев с предположениями по его эффективному использованию.

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

Несколько советов по созданию и использованию файлов RSS-каналов. В разделе "Ресурсы" можно найти дополнительную информацию, например, источники файлов RSS-каналов, спецификации RSS и адреса, по которым можно отправлять свои заголовки.



Ресурсы

Научиться
  • Оригинал статьи An introduction to RSS news feeds;

  • Сайт RSS 2.0 Specification содержит общие сведения, например, основные данные, мотивы и цели проекта, а также рабочую спецификацию;

  • Рекомендации консорциума W3C для модели RDF и спецификации синтаксиса содержатся на сайте Resource Description Framework;

  • Компания Netscape разработала формат RSS 0.9. На сайте компании имеется описание RSS 0.9 и последние спецификации;

  • My Userland собирает заголовки с различных источников. Это один из первых сайтов, использующих RSS-каналы.


Получить продукты и технологии
  • На сайте Webreference имеется редактор RSS Channel Editor - прекрасное средство для создания файлов RSS-каналов;

  • На сайте Wireless Developer Network имеются инструментальные средства для анализа файлов RSS с помощью PHP;

  • Компания Moreover является агрегатором бесплатных новостных каналов с более чем 1500 новостных источников;

  • Meerkat представляет собой средство чтения собранной информации на основе RSS, а также источник новостных каналов.

Обсудить


Об авторе

Джеймс Левин (James Lewin) работает с Интернетом с 1995 года, беспроводными сетями он стал заниматься только с 2000 года. Джеймс является президентом и владельцем компании The Lewin Group, поставщиком сетевых решений и решений для Интернета. Он является сертифицированным инженером по продуктам Microsoft и работает с корпорацией Microsoft и инструментальными средствами разработки Интернет-приложений с открытым исходным кодом.




Выскажите мнение об этой странице


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



ДаНетНе знаю
 


 


12345
 


В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.

    IBM в России Конфиденциальность Контакты