Парсинг XML RSS



  • Как распарсить RSS ленту, представленную в XML формате?.
    Можно поставить вопрос более широко: как распарсить текстовый файл имеющий XML разметку?
    Например такой
    ?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0">
    <channel>
    <title>Заголовок выдачи</title>
    <link>/https://primer.ru</link>
    <description>Результаты поиска</description>
    <item>
    <title>Заголовок записи 1</title>
    <link>/https://zapis1.ru</link>
    <description><b>Параметры поиска: </b><br/><strong>Параметр 1: </strong>Значение пареметра 1<br/><strong>Параметр 2: </strong>Значение параметра 2<br/
    ><strong>Параметр 3: </strong>Значение параметра 3<br/></description>
    <pubDate>Tue, 18 Feb 2020 13:56:36 GMT</pubDate>
    <author>Автор</author>
    </item>
    <item>
    <title>Заголовок записи 2</title>
    <link>/https://zapis2.ru</link>
    <description><b>Параметры поиска: </b><br/><strong>Другой параметр 1: </strong>Доугое значение пареметра 1<br/><strong>Другой параметр 2: </strong>Другое значение параметра 2<br/
    ><strong>Другой параметр 3: </strong>Другое значение параметра 3<br/></description>
    <pubDate>Tue, 19 Feb 2020 13:56:36 GMT</pubDate>
    <author>Другой автор</author>
    </item>
    И так далее …
    <item>
    ….
    </item>
    </channel>
    </rss>

    Блоки item имеют одну и ту же структуру. Нужно превратить их содержимое в строку. А всю выдачу RSS в список таких текстовых строк, что бы потом подцепить, например, экселем.
    В BAS есть инструменты работы с XML. Но они работают, вроде бы, только с HTML строками. А здесь нужно извлекать данные из блоков обрамленных произвольными тегами.



  • @VsDimin, с вашим примером все кроме <link> работает (т.к в html этот тег пишется так <link href="ссылка">, а не так <link>ссылка</link>). Но можно просто заменить <link> перед парсингом, например на <url>, и всё будет работать.

    Вот пример: test_xml.xml



  • @GhostZ Спасибо, буду смотреть. (по линку - это понятно. просто ошибся когда набирал пример)



  • @GhostZ
    Выполнение test_xml.xml вылетает на:
    [495190682] [11:29:28] Поток №1 : ReferenceError: Can't find variable: _do_with_params во время выполнения действия 495190682
    Но в целом идея понятна.
    Кстати. <link href="ссылка"> - это требования нотации HTML. А в XML я могу понимать под <link> все что угодно. Например, индекс какой то своей собственной базы данных.


Log in to reply