J'ai besoin d'analyser un flux RSS (XML version 2.0) et d'afficher les détails analysés dans une page HTML.
javascript
html
rss
Thiru
la source
la source
Réponses:
Analyse du flux
Avec jQuery de jFeed
(Ne recommande pas vraiment celui-là, voir les autres options.)
Avec la prise en charge XML intégrée de jQuery
Avec jQuery et l' API Google AJAX Feed
Mais cela signifie que vous comptez sur leur connexion et leur accessibilité.
Contenu du bâtiment
Une fois que vous avez extrait avec succès les informations dont vous avez besoin du flux, vous pouvez créer des
DocumentFragment
s (document.createDocumentFragment()
contenant les éléments (créés avecdocument.createElement()
) que vous souhaitez injecter pour afficher vos données.Injecter le contenu
Sélectionnez l'élément conteneur que vous souhaitez sur la page et ajoutez-y les fragments de votre document, puis utilisez simplement innerHTML pour remplacer entièrement son contenu.
Quelque chose comme:
ou:
Données de test
En utilisant le fil de cette question , qui à ce jour donne:
Exécutions
Utilisation de la prise en charge XML intégrée de jQuery
Invoquer:
Imprime:
Utilisation de jQuery et des API Google AJAX
Invoquer:
Imprime:
la source
Une autre option obsolète (grâce à @daylight) , et la plus simple pour moi (c'est ce que j'utilise pour SpokenToday.info ):
L' API Google Feed sans utiliser JQuery et en seulement 2 étapes:
Importez la bibliothèque:
Rechercher / charger des flux ( documentation ):
Pour analyser les données, consultez la documentation sur le format de réponse .
la source
document.getElementById('image').style.backgroundImage = "url('" + src + "')";
Si vous recherchez une alternative simple et gratuite à l' API Google Feed pour votre widget rss, rss2json.com pourrait être une solution appropriée pour cela.
Vous pouvez essayer de voir comment cela fonctionne sur un exemple de code de la documentation de l' API ci-dessous:
la source
Pour tous ceux qui lisent ceci (à partir de 2019), malheureusement, la plupart des implémentations de lecture JS RSS ne fonctionnent pas maintenant. Premièrement, l'API Google s'est arrêtée, ce n'est donc plus une option et en raison de la politique de sécurité CORS, vous ne pouvez généralement pas demander de flux RSS entre domaines.
En utilisant l'exemple sur https://www.raymondcamden.com/2015/12/08/parsing-rss-feeds-in-javascript-options (2015), j'obtiens ce qui suit:
Access to XMLHttpRequest at 'https://feeds.feedburner.com/raymondcamdensblog?format=xml' from origin 'MYSITE' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Ceci est correct et constitue une précaution de sécurité par le site Web final, mais cela signifie maintenant que les réponses ci-dessus ne fonctionneront probablement pas.
Ma solution de contournement sera probablement d'analyser le flux RSS via PHP et de permettre au javascript d'accéder à mon PHP plutôt que d'essayer d'accéder au flux de destination finale lui-même.
la source
Si vous souhaitez utiliser une API javascript simple, il existe un bon exemple sur https://github.com/hongkiat/js-rss-reader/
La description complète sur https://www.hongkiat.com/blog/rss-reader-in-javascript/
Il utilise la
fetch
méthode comme méthode globale qui récupère une ressource de manière asynchrone. Voici un aperçu du code:la source
Vous pouvez utiliser jquery-rss ou Vanilla RSS , qui est livré avec de jolis modèles et est super facile à utiliser:
Voir http://jsfiddle.net/sdepold/ozq2dn9e/1/ pour un exemple fonctionnel.
la source
En essayant de trouver une bonne solution pour cela maintenant, je suis tombé sur le plugin FeedEk jQuery RSS / ATOM Feed qui fait un excellent travail d'analyse et d'affichage des flux RSS et Atom via l' API jQuery Feed . Pour un flux RSS basé sur XML de base, j'ai trouvé qu'il fonctionne comme un charme et n'a pas besoin de scripts côté serveur ou d'autres solutions de contournement CORS pour qu'il fonctionne même localement.
la source
J'étais tellement exaspéré par de nombreux articles et réponses trompeurs que j'ai écrit mon propre lecteur RSS: https://gouessej.wordpress.com/2020/06/28/comment-creer-un-lecteur-rss-en-javascript-how- créer-un-lecteur-rss-en-javascript /
Vous pouvez utiliser des requêtes AJAX pour récupérer les fichiers RSS, mais cela fonctionnera si et seulement si vous utilisez un proxy CORS. Je vais essayer d'écrire mon propre proxy CORS pour vous donner une solution plus robuste. En attendant, ça marche, je l'ai déployé sur mon serveur sous Debian Linux.
Ma solution n'utilise pas JQuery, j'utilise uniquement des API standard Javascript sans bibliothèque tierce et elle est censée fonctionner même avec Microsoft Internet Explorer 11.
la source