Hjemmeside » Coding » Hvordan lage en RSS Reader App i JavaScript

    Hvordan lage en RSS Reader App i JavaScript

    RSS (Really Simple Syndication) er et standardisert format som brukes av nettbaserte utgivere til syndikere innholdet deres til andre nettsteder og tjenester. en RSS-dokument, også kjent som a mate, er en XML-dokument bærer innholdet som en utgiver ønsker å distribuere.

    RSS-feeds er tilgjengelig på nesten alle nettbaserte nyhetsnettsteder og blogger for sine lesere til Hold deg oppdatert med innholdet. De kan også bli funnet på ikke-tekstbaserte nettsteder for eksempel YouTube, hvor du kan bruke feed av en YouTube-kanal til å være informert om de nyeste videoene.

    Programmer som får tilgang til disse feeds, og leser og viser innholdet blir kalt RSS lesere. Du kan lage et enkelt RSS-leserprogram i JavaScript. I denne opplæringen ser vi hvordan.

    Struktur av en RSS-feed

    Et RSS-feed har et rotelement kalt , ligner på tag funnet i HTML-dokumenter. Inne i tag, det er en element, liksom i HTML, det inneholder mange delelementer inneholder det distribuerte innholdet på nettstedet.

    En fôr bærer vanligvis noen grunnleggende informasjon for eksempel tittelen, nettadressen og beskrivelsen av nettstedet og av individuelle oppdaterte innlegg, artikler eller annet innhold av den nettsiden. Denne informasjonen finnes i </code>, <code><link></code>, og <code><description></code> elementer, henholdsvis.</p> <p>Når disse kodene er <strong>direkte presentere innvendig <code><channel></code></strong>, de holder tittelen, nettadressen og beskrivelsen av nettstedet. Når de er <strong>presentere inne <code><item></code></strong> at <strong>holder informasjonen om de oppdaterte innleggene</strong>, de representerer den samme informasjonen som før, men den av det enkelte innhold som hver <code><item></code> representere.</p> <p>Det er også noen <strong>valgfrie elementer</strong> som kan være til stede i et RSS-feed, og gir tilleggsinformasjon som bilder eller opphavsrett til det distribuerte innholdet. Du kan lære om dem i dette <strong>RSS 2.0 spesifikasjon</strong> på cyber.harvard.edu.</p> <p>Her er et eksempel på hvordan <strong>RSS-feed av et nettsted</strong> kan se ut som:</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Designtips, opplæring og inspirasjon en-us Visualiser et hvilket som helst CSS-stilark med CSS-statistikk Noen gang lurt på hvor mange CSS-regler er i et stilark? Eller har du noen gang ønsket å se ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - Den nyeste Alexa-drevne Smart Device Amazon er ikke fremmed for konseptet med smarte hjemmeanlegg med en innebygd digital assistent. Tross alt, ... 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    Henter feedet

    Vi må hente feedet med vår RSS leser applikasjon. På et nettsted kan nettadressen til en RSS-feed være funnet inne i tag ved hjelp av application / rss + xml type. For eksempel finner du følgende RSS-feedkobling på Hongkiat.com.

      

    Først, la oss se hvordan få nettadressen til et nettsted bruker JavaScript.

     hent (websiteUrl) .then ((res) => res.text (). deretter ((htmlTxt) => var domParser = ny DOMParser () la doc = domParser.parseFromString (htmlTxt, 'text / html') var feedUrl = doc.querySelector ("link [type =" application / rss + xml "]". href)) .fang (() => console.error ('Feil ved henting av nettstedet')) 

    De hente () Metoden er en global metode som asynkront henter en ressurs. Det tar URL-adressen til ressursen som et argument (nettadressen til nettstedet i vår kode). Den returnerer a Love objekt, så når metoden henter nettstedet vellykket (dvs. Love er oppfylt), den første funksjonen inne i deretter() uttalelse håndterer den hentede responsen (res i over kode).

    Den hentede responsen er da fullt lest inn i en tekststreng bruker tekst() metode. Denne teksten representerer HTML-tekst på vår hentede nettside. Som hente (), tekst() også returnerer a Love gjenstand. Så når det med hell oppretter en svartekst fra responsstrømmen, deretter() vil håndtere denne svarteksten (htmlText i over kode).

    Når HTML-teksten til nettstedet er tilgjengelig, bruker vi DOMParser API til analysere det i et DOM-dokument. DOMParser analyserer en XML / HTML-tekststreng i et DOM-dokument. Dens metode, parseFromString (), tar to argumenter: den Tekst som skal analyseres og innholdstype.

    Deretter fra det opprettede DOM-dokumentet, vi Finn href verdien av den aktuelle stikkord bruker querySelector () metode for å få nettadressen til feedet.

    Parsing og visning av feedet

    Når vi fikk nettadressen til nettsiden, må vi hente og les RSS-dokumentet funnet på den nettadressen.

     hent (feedUrl) .then ((res) => res.text (). deretter ((xmlTxt) => var domParser = ny DOMParser () la doc = domParser.parseFromString (xmlTxt, 'text / xml') doc .Ekv ()) forEach ((item) => la h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title') .textContent document.querySelector ('output'). appendChild (h1)))) 

    På samme måte som vi hentet og analyserte nettstedet, nå vi få og analysere XML-feedet i et DOM-dokument. For å oppnå dette bruker vi 'Text / xml' innholdstype i parseFromString () metode.

    I det analyserte dokumentet, vi velg alle elementer bruker querySelectorAll metode og loop gjennom hver.

    Inne i hvert element kan vi tilgangskoder som </code>, <code><description></code>, og <code><link></code>, som bærer fôrinnholdet. Og vår enkle RSS-leser-applikasjon er ferdig, og du kan stile innholdet av de hentede feeds som du ønsker.</p> <h4>Github demo</h4> <p>Du kan sjekke ut <strong>mer detaljert versjon</strong> av koden som brukes i dette innlegget i vår Github repo. Den mer detaljerte versjonen <strong>henter tre strømmer</strong> (Mozilla Hacks, Hongkiat og Webkit bloggen) <strong>bruker en JSON-fil</strong> og legger også til noen CSS-stiler til RSS-leseren.</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">Hvordan lage en hemmelig skjult mappe uten ekstra programvare</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">Slik oppretter du en sikker og låst mappe i 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">Hvordan lage en responsiv navigasjon</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">Neste artikkel</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">Slik lager du en søkesnarvei på skrivebordet i Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Forrige artikkel</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">Hvordan lage en rutine med 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"> Nyttig informasjon og tips om nettutvikling. Programmering, webdesign, CSS, HTML, JAVASCRIPT. Konfigurer og installer WINDOWS på nytt. Opprettelse av nettsteder og applikasjoner fra bunnen av. </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>