Necesito analizar una fuente RSS (XML versión 2.0) y mostrar los detalles analizados en una página HTML.
javascript
html
rss
Thiru
fuente
fuente
Respuestas:
Analizando el feed
Con jQuery 's jFeed
(Realmente no recomiendo ese, vea las otras opciones).
Con el soporte XML integrado de jQuery
Con jQuery y Google AJAX Feed API
Pero eso significa que confía en que estén en línea y sean accesibles.
Construyendo contenido
Una vez que haya extraído con éxito la información que necesita del feed, puede crear
DocumentFragment
s (quedocument.createDocumentFragment()
contengan los elementos (creados condocument.createElement()
) que querrá inyectar para mostrar sus datos.Inyectando el contenido
Seleccione el elemento contenedor que desea en la página y agregue los fragmentos de su documento a él, y simplemente use innerHTML para reemplazar su contenido por completo.
Algo como:
o:
Datos de prueba
Usando el feed de esta pregunta , que a partir de este escrito da:
Ejecuciones
Usando el soporte XML integrado de jQuery
Invocando:
Imprime:
Usando jQuery y las API de Google AJAX
Invocando:
Imprime:
fuente
Otra opción obsoleta (gracias a @daylight) , y la más fácil para mí (esto es lo que estoy usando para SpokenToday.info ):
La API de Google Feed sin usar JQuery y con solo 2 pasos:
Importar la biblioteca:
Buscar / cargar feeds ( documentación ):
Para analizar los datos, consulte la documentación sobre el formato de respuesta .
fuente
document.getElementById('image').style.backgroundImage = "url('" + src + "')";
Si está buscando una alternativa simple y gratuita a la API de Google Feed de para su widget rss, rss2json.com podría ser una solución adecuada para eso.
Puede intentar ver cómo funciona en un código de muestra de la documentación de la API a continuación:
fuente
Para cualquier otra persona que lea esto (a partir de 2019), lamentablemente, la mayoría de las implementaciones de lectura JS RSS ahora no funcionan. En primer lugar, la API de Google se ha cerrado, por lo que ya no es una opción y, debido a la política de seguridad de CORS, por lo general, ahora no puede solicitar feeds RSS entre dominios.
Usando el ejemplo en https://www.raymondcamden.com/2015/12/08/parsing-rss-feeds-in-javascript-options (2015) obtengo lo siguiente:
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.
Esto es correcto y es una precaución de seguridad del sitio web final, pero ahora significa que es poco probable que las respuestas anteriores funcionen.
Mi solución probablemente será analizar la fuente RSS a través de PHP y permitir que javascript acceda a mi PHP en lugar de intentar acceder a la fuente de destino final.
fuente
Si desea utilizar una API de JavaScript simple, hay un buen ejemplo en https://github.com/hongkiat/js-rss-reader/
La descripción completa en https://www.hongkiat.com/blog/rss-reader-in-javascript/
Utiliza el
fetch
método como un método global que busca un recurso de forma asincrónica. A continuación se muestra un fragmento de código:fuente
Puede usar jquery-rss o Vanilla RSS , que viene con plantillas agradables y es muy fácil de usar:
Consulte http://jsfiddle.net/sdepold/ozq2dn9e/1/ para ver un ejemplo de trabajo.
fuente
Tratando de encontrar una buena solución para esto ahora, me encontré con el complemento FeedEk jQuery RSS / ATOM Feed que hace un gran trabajo al analizar y mostrar los feeds RSS y Atom a través de la API de jQuery Feed . Para una fuente RSS básica basada en XML, descubrí que funciona como un encanto y no necesita scripts del lado del servidor u otras soluciones CORS para que se ejecute incluso localmente.
fuente
Estaba tan exasperado por muchos artículos y respuestas engañosas que escribí mi propio lector de RSS: https://gouessej.wordpress.com/2020/06/28/comment-creer-un-lecteur-rss-en-javascript-how- para-crear-un-lector-de-rss-en-javascript /
Puede usar solicitudes AJAX para obtener los archivos RSS, pero funcionará si y solo si usa un proxy CORS. Intentaré escribir mi propio proxy CORS para brindarle una solución más sólida. Mientras tanto, funciona, lo implementé en mi servidor bajo Debian Linux.
Mi solución no usa JQuery, solo uso API estándar de Javascript sin bibliotecas de terceros y se supone que funciona incluso con Microsoft Internet Explorer 11.
fuente