Программирование на языке Ruby
Шрифт:
15.2.1. Стандартная библиотека rss
Формат RSS основан на XML, поэтому разбирать его можно как обычный XML-документ. Но, поскольку это все-таки специализированный вариант, для него имеет смысл разработать специальный анализатор. Кроме того, запутанность стандарта RSS уже стала притчей во языцех — некорректно написанные программы могут генерировать такие RSS-документы, которые будет очень трудно разобрать.
Ситуация осложняется еще и тем, что существуют несовместимые версии стандарта; чаще всего используются 0.9,1.0 и 2.0. В общем, подобно производству колбасы, RSS — такая вещь, в детали которой лучше не вникать.
В дистрибутив Ruby входит стандартная библиотека, понимающая версии стандарта 0.9,1.0 и 2.0. Даже если вы не укажете версию входного документа явно, библиотека попытается определить ее самостоятельно.
Рассмотрим пример. Мы загрузили канал с сайтаи распечатали заголовки нескольких статей из него:
Прежде чем двигаться дальше, я хотел бы оказать любезность поставщикам каналов. Программами, подобными приведенной выше, следует пользоваться с осторожностью, так как они потребляют ресурсы сервера поставщика. В любом реальном приложении, например в агрегаторе каналов, следует прибегать к кэшированию. Но это уже выходит за рамки простого примера.
В этой программе мы для удобства воспользовались библиотекой
Отметим, что канал извлекает из документа анализатор RSS, а наша программа печатает название канала. Кроме того, метод доступа
Понятно, что результат меняется со временем; когда я запускал эту программу, она напечатала вот что:
Есть также возможность генерировать документы в формате RSS (листинг 15.5). Для этого нужно инвертировать показанную выше процедуру.
Большая часть этой программы понятна без слов. Мы создаем канал в формате RSS 2.0 (с пустыми элементами
Наконец, мы создаем последовательность статей и помещаем их в канал. Отметим, что необходимо добавлять статьи именно по отдельности. Возникает искушение пойти по более простому пути:
но такое решение работать не будет. Почему-то в классе
У библиотеки
Тени в переулке (сборник)
Документальная литература:
биографии и мемуары
публицистика
рейтинг книги
Последний Паладин. Том 13
13. Путь Паладина
Фантастика:
городское фэнтези
попаданцы
аниме
рейтинг книги
Пришельцы с небес
Золотая библиотека фантастики
Фантастика:
научная фантастика
рейтинг книги
Дело чести
12. Хонор Харрингтон
Фантастика:
космическая фантастика
рейтинг книги
Тьма Сердец
2. Путь
Детективы:
полицейские детективы
рейтинг книги
Я до сих пор князь. Книга XXII
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Имперец. Том 4
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Том 2. Рассказы 1889-1903
2. Собрание сочинений в пяти томах
Проза:
русская классическая проза
рейтинг книги
Язык программирования Си. Издание 3-е, исправленное
Компьютеры и Интернет:
программирование
рейтинг книги