Preciso analisar um feed RSS (XML versão 2.0) e exibir os detalhes analisados em uma página HTML.
javascript
html
rss
Thiru
fonte
fonte
Respostas:
Analisando o Feed
Com jQuery 's jFeed
(Não recomendo realmente esse, consulte as outras opções.)
Com suporte XML integrado da jQuery
Com jQuery e Google AJAX Feed API
Mas isso significa que você está confiante de que eles estarão online e acessíveis.
Conteúdo de construção
Depois de extrair com êxito as informações de que precisa do feed, você pode criar
DocumentFragment
s (document.createDocumentFragment()
contendo os elementos (criados comdocument.createElement()
) que deseja injetar para exibir seus dados.Injetando o conteúdo
Selecione o elemento de contêiner que você deseja na página e anexe os fragmentos de seu documento a ele e simplesmente use innerHTML para substituir seu conteúdo inteiramente.
Algo como:
ou:
Dados de teste
Usando o feed desta pergunta , que no momento desta redação fornece:
Execuções
Usando o suporte XML integrado da jQuery
Invocando:
Imprime:
Usando jQuery e APIs AJAX do Google
Invocando:
Imprime:
fonte
Outra opção obsoleta (graças a @daylight) e a mais fácil para mim (é isso que estou usando para SpokenToday.info ):
A API do Google Feed sem usar JQuery e com apenas 2 etapas:
Importe a biblioteca:
Encontrar / carregar feeds ( documentação ):
Para analisar os dados, verifique a documentação sobre o formato da resposta .
fonte
document.getElementById('image').style.backgroundImage = "url('" + src + "')";
Se você está procurando uma alternativa simples e gratuita para a API do Google Feed para seu widget rss, rss2json.com pode ser uma solução adequada para isso.
Você pode tentar ver como funciona em um código de amostra da documentação da API abaixo:
fonte
Para qualquer pessoa que esteja lendo isso (em 2019 em diante), infelizmente, a maioria das implementações de leitura de RSS RSS não funcionam agora. Em primeiro lugar, a API do Google foi encerrada, portanto, não é mais uma opção e, por causa da política de segurança do CORS, você geralmente não pode solicitar feeds RSS entre domínios.
Usando o exemplo em https://www.raymondcamden.com/2015/12/08/parsing-rss-feeds-in-javascript-options (2015), obtenho o seguinte:
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.
Isso está correto e é uma precaução de segurança para o site final, mas agora significa que as respostas acima provavelmente não funcionarão.
Minha solução alternativa provavelmente será analisar o feed RSS por meio de PHP e permitir que o javascript acesse meu PHP em vez de tentar acessar o feed de destino final.
fonte
Se você deseja usar uma API javascript simples, há um bom exemplo em https://github.com/hongkiat/js-rss-reader/
A descrição completa em https://www.hongkiat.com/blog/rss-reader-in-javascript/
Ele usa o
fetch
método como um método global que busca um recurso de maneira assíncrona. Abaixo está um pequeno código:fonte
Você pode usar jquery-rss ou Vanilla RSS , que vem com bons modelos e é super fácil de usar:
Consulte http://jsfiddle.net/sdepold/ozq2dn9e/1/ para obter um exemplo prático .
fonte
Tentando encontrar uma boa solução para isso agora, me deparei com o plugin de feed RSS / ATOM do FeedEk jQuery que faz um ótimo trabalho de análise e exibição de feeds RSS e Atom por meio da API de feed jQuery . Para um feed RSS básico baseado em XML, descobri que ele funciona perfeitamente e não precisa de scripts do lado do servidor ou outras soluções CORS para ser executado, mesmo localmente.
fonte
Fiquei tão irritado com muitos artigos e respostas enganosas que escrevi meu próprio leitor RSS: https://gouessej.wordpress.com/2020/06/28/comment-creer-un-lecteur-rss-en-javascript-how- to-create-a-rss-reader-in-javascript /
Você pode usar solicitações AJAX para buscar os arquivos RSS, mas funcionará se e somente se você usar um proxy CORS. Tentarei escrever meu próprio proxy CORS para fornecer a você uma solução mais robusta. Enquanto isso, ele funciona, eu o implantei em meu servidor no Debian Linux.
Minha solução não usa JQuery, eu uso apenas APIs padrão JavaScript simples, sem bibliotecas de terceiros, e deve funcionar mesmo com o Microsoft Internet Explorer 11.
fonte