Як створити додаток RSS Reader у JavaScript
RSS (Really Simple Syndication) - це стандартизований формат, який використовують видавці в мережі синдикувати їх зміст на інші веб-сайти та служби. An Документ RSS, також відомий як a корм, є XML-документ несе вміст, який видавець бажає розповсюджувати.
RSS-канали доступні практично на всіх веб-сайтах та блогах для онлайн-новин для своїх читачів залишайтеся в курсі їхнього вмісту. Їх також можна знайти на нетекстові веб-сайти наприклад, YouTube, де можна використовувати канал каналу YouTube повідомили про останні відео.
Називаються програми, які отримують доступ до цих каналів, а також читають і показують їх вміст Читачі RSS. Ви можете створити просту програму для читання RSS у JavaScript. У цьому підручнику ми побачимо, як це зробити.
Структура каналу RSS
Канал RSS має кореневий елемент називається
, схожий на тег знайдено в документах HTML. Всередині
тег, є
елемент, начебто подібний в HTML, що включає в себе безліч суб-елементів містить розповсюджений вміст веб-сайту.
Живлення зазвичай несе Основна інформація такі як назва, URL-адреса та опис веб-сайту та веб-сайту окремі оновлені публікації, статті або інший вміст цього веб-сайту. Цю інформацію можна знайти в
, , і
елементів, відповідно.
Коли ці теги є безпосередньо присутній всередині
, вони містять назву, URL-адресу та опис веб-сайту. Коли вони присутній всередині
що містить інформацію про оновлені публікації, вони являють собою ту ж саму інформацію, що й раніше, але й інформацію про окремий вміст, що кожен
представляти.
Є також деякі необов'язкові елементи які можуть бути присутніми в каналі RSS, надаючи додаткову інформацію, таку як зображення або авторські права на розповсюджуваний контент. Про них можна дізнатися в цьому Специфікація RSS 2.0 на cyber.harvard.edu.
Ось приклад того, як RSS-канал веб-сайту може виглядати так:
Hongkiat https://www.hongkiat.com/Дизайн поради, підручник і натхнення en-us Візуалізуйте будь-яку таблицю стилів CSS зі статистикою CSS Ви коли-небудь замислювалися, скільки правил CSS в таблиці стилів? Або ви хотіли бачити ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/Amazon Echo Show - Останній смартфон на базі Алекса Amazon не чуже концепції розумних домашніх систем з вбудованим цифровим помічником. Адже… 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/
Отримання каналу
Ми потребуємо витягувати канал з нашою програмою для читання RSS. На веб-сайті може бути URL-адреса каналу RSS знайдено всередині з використанням тега
application / rss + xml
тип. Наприклад, на сайті Hongkiat.com можна знайти посилання на канал RSS.
Спочатку подивимося, як це зробити отримати URL-адресу каналу веб-сайту використовуючи JavaScript.
fetch (websiteUrl). then ((res) => res.text ().) потім ((htmlTxt) => var domParser = новий DOMParser () дозволить doc = domParser.parseFromString feedUrl = doc.querySelector ('link [type = "application / rss + xml"]'). href)).) catch (() => console.error ("Помилка при виборі веб-сайту"))
The fetch ()
Метод є глобальним методом, який асинхронно вибирає ресурс. URL-адреса ресурсу приймається як аргумент (URL-адреса веб-сайту в нашому коді). Це повертає a Обіцянка
об'єкт, тому, коли метод успішно вибирає веб-сайт (тобто Обіцянка
виконується), перша функція всередині потім()
заяву обробляє отриманий відповідь (res
у наведеному вище коді).
Потім отриманий відповідь повністю прочитати в текстовий рядок за допомогою текст ()
метод. Цей текст являє собою Текст HTML нашого придбаного веб-сайту. Люблю fetch ()
, текст ()
також повертає a Обіцянка
об'єкт. Отже, при успішному створенні тексту відповіді з потоку відповідей, потім()
оброблятиме цей текст відповіді (htmlText
у наведеному вище коді).
Як тільки HTML-текст сайту доступний, ми використовуємо API DOMParser
до розібрати його в документ DOM. DOMParser
аналізує текстовий рядок XML / HTML у документ DOM. Її метод, parseFromString ()
, бере два аргументи: текст, який потрібно проаналізувати і тип вмісту.
Потім з створеного документа DOM ми знайди href
значення відповідного тег за допомогою
querySelector ()
метод, щоб отримати URL-адресу каналу.
Розбір та відображення каналу
Як тільки ми отримали URL-адресу каналу веб-сайту, нам потрібно вибирати та читати документ RSS знайдено за цією URL-адресою.
fetch (feedUrl). then ((res) => res.text ().) ((xmlTxt) => var domParser = новий DOMParser () доз. doc = domParser.parseFromString forEach ((item) => нехай h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title'). textContent document.querySelector ('output'). appendChild (h1))))
Так само, як ми прибирали та аналізували веб-сайт, тепер ми отримати і проаналізувати канал XML у документ DOM. Для цього ми використовуємо 'text / xml'
тип вмісту в parseFromString ()
метод.
У розібраному документі ми виберіть усі
елементи за допомогою querySelectorAll
метод і петля через кожну.
Усередині кожного елемента ми можемо теги доступу люблю
,
, і , що несуть вміст корму. Наші прості програми для читання RSS-файлів робляться, ви можете накреслити вміст завантажених каналів за вашим бажанням.
Демо Github
Ви можете перевірити більш детальна версія коду, який використовується в цій посаді в нашому Github repo. Більш детальна версія отримує три канали (Mozilla Hacks, Hongkiat і блог Webkit) за допомогою файлу JSON а також додає деякі стилі CSS до читача RSS.