Поиск по блогу

вторник, 9 сентября 2008 г.

Разбираемся с форматом RSS. Парсинг RSS на Delphi

Согласно Википедии:

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.
То есть, парсинг RSS, по сути, ничем не отличается от парсинга XML.

Текст любого RSS-представления содержит как информацию статического плана (информацию о вашем сайте), так и информацию, которая обновилась, "новости". Каждая запись заключена внутри тега <item>, который содержит элементы TITLE, URL, DESCRIPTION, а также некоторые другие.

Я уже писала о компоненте TXMLDocument, с помощью которого достаточно легко разобрать любой XML-документ. Для парсинга RSS — то, что надо! Сначала обращаемся к ITEM, а потом и ко вложенным элементам. Перед парсингом xml-файл можно загрузить на локальную машину так, как я разбирала в предыдущем примере.

Часть кода (непосредственный парсинг XML):
XMLDoc.FileName := LocalFileName;
XMLDoc.Active:=True;
StartItemNode:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item');
ANode := StartItemNode;
repeat
STitle := ANode.ChildNodes['title'].Text;
sLink := ANode.ChildNodes['link'].Text;
sDesc := ANode.ChildNodes['description'].Text;

// делаем что-нибудь с результатами, например, добавляем в листвью
with LV.Items.Add do
begin
Caption := STitle;
SubItems.Add(sLink);
SubItems.Add(sDesc)
end;

ANode := ANode.NextSibling;
until ANode = nil;

Статьи схожей тематики:



4 комментария:

  1. а как бы все это на php, а...... а нельзя ли все-таки на php....)

    ОтветитьУдалить
  2. Можно и на php, мне не сложно... Но примеров на php в сети и так много) В общем, я учту пожелание и постараюсь пометить примеры еще и на php)

    ОтветитьУдалить
  3. А как написать сборщик адресов сайтов из каталогов? Подскажите, пожалуйста, с чего начать?

    ОтветитьУдалить
  4. Подскажите пожалуйста, значение строчки XMLDoc.Active:= true;

    ОтветитьУдалить

Комментарии модерируются, вопросы не по теме удаляются, троллинг тоже.

К сожалению, у меня нет столько свободного времени, чтобы отвечать на все частные вопросы, так что, может, свой вопрос лучше задать на каком-нибудь форуме?

Поделиться