Домашняя » кодирование » Как создать приложение для чтения RSS на JavaScript

    Как создать приложение для чтения RSS на JavaScript

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

    RSS-каналы доступны почти на всех новостных веб-сайтах и ​​в блогах для их читателей. оставаться в курсе их содержания. Их также можно найти на нетекстовые веб-сайты такие как YouTube, где вы можете использовать канал канала YouTube, чтобы быть в курсе последних видео.

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

    Структура RSS-канала

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

    Корм обычно несет некоторые основная информация такие как заголовок, URL и описание веб-сайта и отдельные обновленные сообщения, статьи или другое содержимое этого сайта. Эта информация находится в </code>, <code><link></code>, а также <code><description></code> элементы соответственно.</p> <p>Когда эти теги <strong>непосредственно присутствует внутри <code><channel></code></strong>, они содержат заголовок, URL и описание сайта. Когда они <strong>присутствует внутри <code><item></code></strong> тот <strong>содержит информацию об обновленных сообщениях</strong>, они представляют ту же информацию, что и раньше, но информацию об отдельном контенте, который каждый <code><item></code> представлять.</p> <p>Есть также некоторые <strong>дополнительные элементы</strong> которые могут присутствовать в ленте RSS, предоставляя дополнительную информацию, такую ​​как изображения или авторские права на распространяемый контент. Вы можете узнать о них в этом <strong>Спецификация RSS 2.0</strong> на cyber.harvard.edu.</p> <p>Вот пример того, как <strong>RSS-лента сайта</strong> может выглядеть так:</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Советы по дизайну, учебник и вдохновение ан-нас Визуализация любой таблицы стилей CSS с помощью статистики CSS Задумывались ли вы, сколько правил CSS в таблице стилей? Или вы когда-нибудь хотели увидеть ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - новейшее интеллектуальное устройство на базе Alexa Amazon не привыкать к концепции систем умного дома со встроенным цифровым помощником. В конце концов, ... 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    Извлечение корма

    Мы должны получить корм с нашим приложением для чтения RSS. На веб-сайте URL-адрес канала RSS может быть нашел внутри тег с помощью Приложение / Новости + XML тип. Например, вы найдете следующую ссылку RSS-канала на Hongkiat.com.

      

    Во-первых, давайте посмотрим, как получить URL канала веб-сайта используя JavaScript.

     fetch (websiteUrl) .then ((res) => res.text (). then ((htmlTxt) => var domParser = new DOMParser () let doc = domParser.parseFromString (htmlTxt, 'text / html') var feedUrl = doc.querySelector ('link [type = "application / rss + xml"]'). href)). catch (() => console.error ('Ошибка при загрузке веб-сайта')) 

    выборки () Метод является глобальным методом, который асинхронно выбирает ресурс. Он принимает URL ресурса в качестве аргумента (URL сайта в нашем коде). Это возвращает обещание объект, поэтому, когда метод успешно выбирает веб-сайт (т.е. обещание выполняется), первая функция внутри затем() заявление обрабатывает полученный ответ (Рез в приведенном выше коде).

    Полученный ответ тогда полностью читать в текстовую строку с использованием текст() метод. Этот текст представляет HTML текст нашего загруженного сайта. подобно выборки (), текст() также возвращает обещание объект. Итак, когда он успешно создает текст ответа из потока ответов, затем() обработает этот текст ответа (HTMLText в приведенном выше коде).

    После того, как HTML-текст сайта доступен, мы используем DOMParser API в разобрать его в документ DOM. DOMParser разбирает текстовую строку XML / HTML в документ DOM. Его метод, parseFromString (), принимает два аргумента: текст для анализа и Тип содержимого.

    Затем из созданного документа DOM мы Найти HREF значение соответствующего тег с использованием querySelector () метод для того, чтобы получить URL канала.

    Разбор и отображение ленты

    После того, как мы получили URL канала веб-сайта, нам нужно получить и прочитать документ RSS найти по этому URL.

     fetch (feedUrl) .then ((res) => res.text (). then ((xmlTxt) => var domParser = new DOMParser () let doc = domParser.parseFromString (xmlTxt, 'text / xml') doc .querySelectorAll ('item'). forEach ((item) => let h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title'). textContent document.querySelector ('output'). appendChild (h1)))) 

    Таким же образом, как мы взяли и проанализировали сайт, теперь мы получить и разобрать канал XML в документе DOM. Для этого мы используем 'Текст / XML' тип содержимого в parseFromString () метод.

    В разобранном документе мы выбрать все элементы с использованием querySelectorAll метод и цикл через каждый.

    Внутри каждого элемента мы можем метки доступа лайк </code>, <code><description></code>, а также <code><link></code>, которые несут содержание корма. И, наше простое приложение для чтения RSS сделано, вы можете стилизовать содержимое выбранных каналов по своему желанию.</p> <h4>Github демо</h4> <p>Вы можете проверить <strong>более подробная версия</strong> кода, используемого в этом посте в нашем репозитории Github. Более подробная версия <strong>получает три канала</strong> (Mozilla Hacks, Hongkiat и блог Webkit) <strong>используя файл JSON</strong> а также добавляет некоторые стили CSS для чтения RSS.</p> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> </div> </div> <div class="col-md-4"> <div class="bar"> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html"><img src="//savtec.org/img/images_7/how-to-create-a-secretly-disguised-folder-without-extra-software_11.png" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html">Как создать секретно замаскированную папку без дополнительного программного обеспечения</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html"><img src="//savtec.org/img/images/how-to-create-a-secured-and-locked-folder-in-windows-xp.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html">Как создать защищенную и заблокированную папку в Windows XP</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/coding/how-to-create-a-responsive-navigation.html"><img src="//savtec.org/img/images_2/how-to-create-a-responsive-navigation.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/coding/how-to-create-a-responsive-navigation.html">Как создать адаптивную навигацию</a> </div> </div> </div> </div> </div> </div> <div class="prevnext"> <div class="container"> <div class="row"> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Следующая статья</div> <div class="post-img"><a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html"> <img src="//savtec.org/img/images_7/how-to-create-a-search-shortcut-on-the-desktop-in-windows-81_6.png" alt=""> </a></div> <div class="post-h1"> <a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html">Как создать ярлык поиска на рабочем столе в Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Предыдущая статья</div> <div class="post-img"><a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html"> <img src="//savtec.org/img/images/how-to-create-a-routine-with-amazon-alexa.jpg" alt=""> </a></div> <div class="post-h1"> <a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html">Как создать рутину с Amazon Alexa</a> </div> </div> </div> </div> </div> </div> <footer> <div class="container"> <div class="langs-block"> <ul class="langs-list"> <li class="site-lang"><a href="https://www.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TH"></i></a></li> <li class="site-lang"><a href="https://de.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DE"></i></a></li> <li class="site-lang"><a href="https://ar.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-AE"></i></a></li> <li class="site-lang"><a href="https://bg.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-BG"></i></a></li> <li class="site-lang"><a href="https://cs.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-CZ"></i></a></li> <li class="site-lang"><a href="https://da.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DK"></i></a></li> <li class="site-lang"><a href="https://el.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-GR"></i></a></li> <li class="site-lang"><a href="https://es.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ES"></i></a></li> <li class="site-lang"><a href="https://et.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-EE"></i></a></li> <li class="site-lang"><a href="https://fi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FI"></i></a></li> <li class="site-lang"><a href="https://fr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FR"></i></a></li> <li class="site-lang"><a href="https://he.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IL"></i></a></li> <li class="site-lang"><a href="https://hi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IN"></i></a></li> <li class="site-lang"><a href="https://hr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HR"></i></a></li> <li class="site-lang"><a href="https://hu.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HU"></i></a></li> <li class="site-lang"><a href="https://id.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ID"></i></a></li> <li class="site-lang"><a href="https://it.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IT"></i></a></li> <li class="site-lang"><a href="https://ja.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-JP"></i></a></li> <li class="site-lang"><a href="https://ko.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-KR"></i></a></li> <li class="site-lang"><a href="https://lt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LT"></i></a></li> <li class="site-lang"><a href="https://lv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LV"></i></a></li> <li class="site-lang"><a href="https://ms.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-MY"></i></a></li> <li class="site-lang"><a href="https://nl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NL"></i></a></li> <li class="site-lang"><a href="https://no.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NO"></i></a></li> <li class="site-lang"><a href="https://pl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PL"></i></a></li> <li class="site-lang"><a href="https://pt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PT"></i></a></li> <li class="site-lang"><a href="https://ro.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RO"></i></a></li> <li class="site-lang"><a href="https://ru.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RU"></i></a></li> <li class="site-lang"><a href="https://sk.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SK"></i></a></li> <li class="site-lang"><a href="https://sl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SI"></i></a></li> <li class="site-lang"><a href="https://sr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RS"></i></a></li> <li class="site-lang"><a href="https://sv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SE"></i></a></li> <li class="site-lang"><a href="https://tr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TR"></i></a></li> <li class="site-lang"><a href="https://ua.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-UA"></i></a></li> <li class="site-lang"><a href="https://vi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-VN"></i></a></li> </ul> </div> <div class="row align-items-center"> <div class="col-md-3"> © <script> var currentTime = new Date(); var year = currentTime.getFullYear(); document.write(year); </script> <a href="/">Savtec</a> </div> <div class="col-md-9"> Полезная информация и советы по веб-разработке. Программирование, веб-дизайн, CSS, HTML, JAVASCRIPT. Настройка и переустановка WINDOWS. Создание сайтов и приложений с нуля. </div> </div> </div> </footer> <link rel="stylesheet" href="css/flags.css"> <script src="https://unpkg.com/simple-jekyll-search@1.5.0/dest/simple-jekyll-search.min.js"></script> <script> SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('results-container'), json: '/search.json', searchResultTemplate: '<li><a href="{url}">{title}</a></li>' }) </script> <link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" /> <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script> <script> window.addEventListener("load", function(){ window.cookieconsent.initialise({ "palette": { "popup": { "background": "#edeff5", "text": "#838391" }, "button": { "background": "#4b81e8" } }, "theme": "classic", "position": "bottom-right" })}); </script> </body> </html>