Page d'accueil » Codage » Comment créer une application de lecteur RSS en JavaScript

    Comment créer une application de lecteur RSS en JavaScript

    RSS (syndication vraiment simple) est un format normalisé utilisé par les éditeurs en ligne pour syndiquer leur contenu vers d'autres sites et services. Un Document RSS, également connu sous le nom d'un alimentation, est un Document XML portant le contenu qu'un éditeur souhaite distribuer.

    Les flux RSS sont disponibles sur presque tous les sites d’information en ligne et les blogs pour que leurs lecteurs rester à jour avec leur contenu. Ils peuvent également être trouvés sur sites Web non textuels tels que YouTube, où vous pouvez utiliser le fil d'une chaîne YouTube pour être informé des dernières vidéos.

    Les programmes qui accèdent à ces flux, lisent et affichent leur contenu sont appelés Lecteurs RSS. Vous pouvez créer un programme de lecteur RSS simple en JavaScript. Dans ce tutoriel, nous verrons comment.

    Structure d'un flux RSS

    Un flux RSS a un élément racine appelé , semblable à la balise trouvée dans les documents HTML. À l'intérieur de tag, il y a un élément, un peu comme en HTML, que comprend de nombreux sous-éléments contenant le contenu distribué du site.

    Un aliment en porte généralement Informations de base tels que le titre, l’URL et la description du site Web et de la Articles, articles ou autres contenus mis à jour individuellement de ce site. Ces informations se trouvent dans </code>, <code><link></code>, et <code><description></code> éléments, respectivement.</p> <p>Quand ces balises sont <strong>directement présent à l'intérieur <code><channel></code></strong>, ils contiennent le titre, l'URL et la description du site. Quand ils sont <strong>présent à l'intérieur <code><item></code></strong> cette <strong>détient les informations sur les messages mis à jour</strong>, ils représentent la même information qu'auparavant mais celle du contenu individuel que chaque <code><item></code> représenter.</p> <p>Il y en a aussi <strong>éléments optionnels</strong> qui peuvent être présents dans un flux RSS, fournissant des informations supplémentaires telles que des images ou des droits d'auteur sur le contenu distribué. Vous pouvez apprendre à leur sujet dans cette <strong>Spécification RSS 2.0</strong> à cyber.harvard.edu.</p> <p>Voici un exemple de la façon dont le <strong>Flux RSS d'un site web</strong> pourrait ressembler à:</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Conseils de conception, tutoriels et inspirations en-nous Visualisez n'importe quelle feuille de style CSS avec les statistiques CSS Vous êtes-vous déjà demandé combien de règles CSS sont dans une feuille de style? Ou avez-vous déjà voulu voir… 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - Le dernier appareil intelligent alimenté par Alexa Amazon n'est pas étranger au concept de systèmes de maison intelligente avec un assistant numérique intégré. Après tout, le… 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    Aller chercher le fil

    Nous devons le faire aller chercher le fil avec notre application de lecteur RSS. Sur un site Web, l’URL d’un flux RSS peut être trouvé à l'intérieur du tag en utilisant le application / rss + xml type. Par exemple, vous trouverez le lien de flux RSS suivant sur Hongkiat.com.

      

    Tout d'abord, voyons comment récupère l'URL d'un site Web en utilisant JavaScript.

     chercher (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 (" Erreur lors de l'extraction du site Web ")) 

    le chercher () méthode est une méthode globale qui récupère une ressource de manière asynchrone. Il prend l'URL de la ressource en argument (l'URL du site dans notre code). Il renvoie un Promettre objet, donc lorsque la méthode récupère avec succès le site Web (c.-à-d. le Promettre est remplie), la première fonction à l'intérieur du puis() déclaration gère la réponse récupérée (res dans le code ci-dessus).

    La réponse recherchée est alors lire complètement dans une chaîne de texte en utilisant le texte() méthode. Ce texte représente le Texte HTML de notre site Web récupéré. Comme chercher (), texte() également renvoie un Promettre objet. Donc, quand il crée avec succès un texte de réponse à partir du flux de réponses, puis() gérera ce texte de réponse (htmlText dans le code ci-dessus).

    Une fois que le texte HTML du site est disponible, nous utilisons API DOMParser à analyser dans un document DOM. DOMParser analyse une chaîne de texte XML / HTML dans un document DOM. Sa méthode, parseFromString (), prend deux arguments: la texte à analyser et le type de contenu.

    Ensuite, à partir du document DOM créé, nous trouvez le href valeur de la pertinente étiquette en utilisant le querySelector () méthode afin d'obtenir l'URL du flux.

    Analyser et afficher le flux

    Une fois que nous avons reçu l’URL du site Web, nous devons chercher et lire le document RSS trouvé à cette URL.

     fetch (feedUrl) .then ((res) => res.text (). then ((xmlTxt) => var domParser = nouveau 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)))) 

    De la même manière que nous avons récupéré et analysé le site, maintenant nous obtenir et analyser le flux XML dans un document DOM. Pour ce faire, nous utilisons le 'text / xml' type de contenu dans le parseFromString () méthode.

    Dans le document analysé, nous sélectionner tous les éléments en utilisant le querySelectorAll méthode et boucle à travers chacun.

    À l'intérieur de chaque élément, nous pouvons balises d'accès comme </code>, <code><description></code>, et <code><link></code>, qui portent le contenu de l'alimentation. Et, notre simple application de lecteur RSS est terminée, vous pouvez personnaliser le contenu des flux récupérés à votre guise..</p> <h4>Démo de Github</h4> <p>Vous pouvez vérifier le <strong>version plus détaillée</strong> du code utilisé dans ce post dans notre dépôt Github. La version plus détaillée <strong>va chercher trois aliments</strong> (Mozilla Hacks, Hongkiat et le blog Webkit) <strong>en utilisant un fichier JSON</strong> et ajoute également des styles CSS au lecteur 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">Comment créer un dossier secrètement dissimulé sans logiciel supplémentaire</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">Comment créer un dossier sécurisé et verrouillé dans 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">Comment créer une navigation réactive</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">Article suivant</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">Comment créer un raccourci de recherche sur le bureau dans Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Article précédent</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">Comment créer une routine avec 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"> Informations utiles et conseils de développement Web. Programmation, conception web, CSS, HTML, JAVASCRIPT. Configurez et réinstallez WINDOWS. Création de sites et d'applications à partir de zéro. </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>