Startpagina » Coding » Hoe maak je een RSS-lezer-app in JavaScript

    Hoe maak je een RSS-lezer-app in JavaScript

    RSS (Really Simple Syndication) is een gestandaardiseerd formaat dat wordt gebruikt door online uitgevers om syndicaat hun inhoud naar andere websites en services. Een RSS-document, ook bekend als a voeden, is een XML-document het dragen van de inhoud die een uitgever wenst te verspreiden.

    RSS feeds zijn beschikbaar op bijna alle online nieuwswebsites en blogs voor hun lezers blijf up-to-date met hun inhoud. Ze zijn ook te vinden op niet-tekst gebaseerde websites zoals YouTube, waar je de feed van een YouTube-kanaal kunt gebruiken op de hoogte gehouden van de nieuwste video's.

    Programma's die toegang hebben tot deze feeds en die de inhoud ervan lezen en weergeven, worden gebeld RSS-lezers. U kunt een eenvoudig RSS-lezerprogramma maken in JavaScript. In deze zelfstudie zien we hoe.

    Structuur van een RSS-feed

    Een RSS-feed heeft een rootelement riep , vergelijkbaar met de tag gevonden in HTML-documenten. Binnen in de tag, er is een element, een beetje zoals in HTML, dat bevat veel subelementen met de gedistribueerde inhoud van de website.

    Een feed heeft meestal wat basis informatie zoals de titel, URL en beschrijving van de website en van de individuele bijgewerkte berichten, artikelen of andere inhoud van die website. Deze informatie is te vinden in </code>, <code><link></code>, en <code><description></code> elementen, respectievelijk.</p> <p>Wanneer deze tags zijn <strong>direct aanwezig binnen <code><channel></code></strong>, ze bevatten de titel, URL en beschrijving van de website. Wanneer ze zijn <strong>aanwezig binnen <code><item></code></strong> dat <strong>bevat de informatie over de bijgewerkte berichten</strong>, ze vertegenwoordigen dezelfde informatie als voorheen maar die van de individuele inhoud die elk bevat <code><item></code> vertegenwoordigen.</p> <p>Er zijn er ook enkele <strong>optionele elementen</strong> die mogelijk aanwezig is in een RSS-feed en aanvullende informatie biedt, zoals afbeeldingen of auteursrechten op de gedistribueerde inhoud. Je kunt hier meer over leren <strong>RSS 2.0-specificatie</strong> op cyber.harvard.edu.</p> <p>Hier is een voorbeeld van hoe het <strong>RSS-feed van een website</strong> kan er als volgt uitzien:</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Ontwerptips, zelfstudie en inspiraties nl-nl Visualiseer elke CSS-stylesheet met CSS-statistieken Heeft u zich ooit afgevraagd hoeveel CSS-regels er in een stylesheet zitten? Of heb je ooit willen zien ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - Het nieuwste slimme apparaat van Alexa Amazon is niet vreemd aan het concept van slimme huissystemen met een ingebouwde digitale assistent. De ... 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    De feed ophalen

    We moeten haal de feed met onze RSS reader-applicatie. Op een website kan de URL van een RSS-feed zijn gevonden in de tag met behulp van de application / rss + xml type. U vindt bijvoorbeeld de volgende RSS-feedkoppeling op Hongkiat.com.

      

    Laten we eerst eens kijken hoe ontvang de feed-URL van een website met behulp van 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 ('Fout bij het ophalen van de website')) 

    De ophalen () methode is een globale methode die haalt asynchroon een resource op. Het neemt de URL van de bron als een argument (de URL van de website in onze code). Het geeft a terug Belofte object, dus wanneer de methode de website met succes ophaalt (dus Belofte is vervuld), de eerste functie binnen de dan() uitspraak handelt het opgehaalde antwoord af (res in bovenstaande code).

    Het opgehaalde antwoord is dan volledig ingelezen in een tekstreeks de ... gebruiken tekst() methode. Deze tekst vertegenwoordigt de HTML-tekst van onze opgehaalde website. Net zoals ophalen (), tekst() ook geeft a terug Belofte voorwerp. Dus wanneer het met succes een antwoordtekst uit de reactiestream maakt, dan() zal die antwoordtekst behandelen (htmlText in bovenstaande code).

    Zodra HTML-tekst van de website beschikbaar is, gebruiken wij DOMParser API naar ontleed het in een DOM-document. DOMParser parseert een XML / HTML-tekststring in een DOM-document. Zijn methode, parseFromString (), neemt twee argumenten: de tekst die moet worden geparseerd en de inhoudstype.

    Vervolgens, vanuit het gemaakte DOM-document, wij vind de href waarde van de relevante label de ... gebruiken querySelector () methode om de URL van de feed te krijgen.

    De feed parseren en weergeven

    Zodra we de feed-URL van de website hebben ontvangen, moeten we dit doen haal het RSS-document op en lees het gevonden op die URL.

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

    Op dezelfde manier als we de website hebben opgehaald en geparseerd, nu wij download en ontleed de XML-feed in een DOM-document. Om dit te bereiken, gebruiken we de 'Text / xml' inhoudstype in de parseFromString () methode.

    In het geparseerde document, wij selecteer alle elementen de ... gebruiken querySelectorAll methode en loop door elk.

    Binnen elk element kunnen we toegangslabels net zoals </code>, <code><description></code>, en <code><link></code>, die de inhoud van de feed dragen. En onze eenvoudige RSS-lezer is klaar, u kunt de inhoud van de opgehaalde feeds naar eigen wens inrichten.</p> <h4>Github demo</h4> <p>Je kunt het <strong>meer gedetailleerde versie</strong> van de code die in dit bericht wordt gebruikt in onze Github-repo. De meer gedetailleerde versie <strong>haalt drie feeds op</strong> (Mozilla Hacks, Hongkiat en de Webkit-blog) <strong>een JSON-bestand gebruiken</strong> en voegt ook een aantal CSS-stijlen toe aan de RSS-lezer.</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">Hoe maak je een stiekem vermomde map zonder extra software</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">Een beveiligde en vergrendelde map maken in 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">Hoe een responsieve navigatie te maken</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">Volgend artikel</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">Hoe een zoeksnelkoppeling op het bureaublad te maken in Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Vorig artikel</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">Hoe maak je een routine met 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"> Nuttige informatie en tips voor webontwikkeling. Programmering, webdesign, CSS, HTML, JAVASCRIPT. Configureer en installeer WINDOWS opnieuw. Creëren van sites en applicaties vanuit het niets. </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>