Мне нужно проанализировать RSS-канал (XML версии 2.0) и отобразить проанализированные детали на странице HTML.
javascript
html
rss
Thiru
источник
источник
Ответы:
Разбор фида
С помощью Jquery «s jFeed
(Не рекомендую этот вариант, посмотрите другие варианты.)
Со встроенной поддержкой XML в jQuery
С помощью jQuery и API Google AJAX Feed
Но это означает, что вы полагаетесь на то, что они онлайн и доступны.
Создание контента
После того, как вы успешно извлекли необходимую информацию из фида, вы можете создать
DocumentFragment
s (сdocument.createDocumentFragment()
содержащими элементы (созданные с помощьюdocument.createElement()
), которые вы хотите ввести для отображения ваших данных.Внедрение контента
Выберите элемент контейнера, который вы хотите разместить на странице, и добавьте к нему фрагменты документа и просто используйте innerHTML для полной замены его содержимого.
Что-то вроде:
или:
Данные испытаний
Используя этот вопрос , который на момент написания этой статьи дает:
Казни
Использование встроенной поддержки XML в jQuery
Вызов:
Распечатывает:
Использование jQuery и API Google AJAX
Вызов:
Распечатывает:
источник
Другой устаревший (благодаря @daylight) вариант, самый простой для меня (это то, что я использую для SpokenToday.info ):
Feed API Google без использования JQuery и только 2 шага:
Импортируйте библиотеку:
Найти / загрузить каналы ( документация ):
Чтобы проанализировать данные, проверьте документацию о формате ответа .
источник
document.getElementById('image').style.backgroundImage = "url('" + src + "')";
Если вы ищете простую и бесплатную альтернативу Google Feed API для своего rss-виджета, то rss2json.com может быть подходящим решением для этого.
Вы можете попробовать увидеть, как это работает, на примере кода из документации по API ниже:
источник
Для всех, кто читает это (начиная с 2019 года), к сожалению, большинство реализаций чтения JS RSS сейчас не работают. Во-первых, Google API был отключен, поэтому это больше не вариант, и из-за политики безопасности CORS вы, как правило, теперь не можете запрашивать RSS-каналы между доменами.
Используя пример на https://www.raymondcamden.com/2015/12/08/parsing-rss-feeds-in-javascript-options (2015), я получаю следующее:
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.
Это правильно и является мерой безопасности конечного веб-сайта, но теперь означает, что приведенные выше ответы вряд ли сработают.
Мой обходной путь, вероятно, будет заключаться в том, чтобы проанализировать RSS-канал через PHP и разрешить javascript доступ к моему PHP, а не пытаться получить доступ к самому каналу конечного назначения.
источник
Если вы хотите использовать простой API-интерфейс javascript, есть хороший пример на https://github.com/hongkiat/js-rss-reader/
Полное описание на https://www.hongkiat.com/blog/rss-reader-in-javascript/
Он использует
fetch
метод как глобальный метод, который асинхронно извлекает ресурс. Ниже приведен фрагмент кода:источник
Вы можете использовать jquery-rss или Vanilla RSS , который поставляется с хорошими шаблонами и очень прост в использовании:
См. Http://jsfiddle.net/sdepold/ozq2dn9e/1/ для рабочего примера.
источник
Пытаясь найти хорошее решение для этого сейчас, я наткнулся на подключаемый модуль FeedEk jQuery RSS / ATOM Feed , который отлично справляется с синтаксическим анализом и отображением каналов RSS и Atom через API jQuery Feed . Я обнаружил, что базовый RSS-канал на основе XML работает как шарм и не требует серверных скриптов или других обходных путей CORS для его запуска даже локально.
источник
Меня настолько разозлили многие вводящие в заблуждение статьи и ответы, что я написал свой собственный RSS-ридер: https://gouessej.wordpress.com/2020/06/28/comment-creer-un-lecteur-rss-en-javascript-how- чтобы создать-а-RSS-ридер-в-JavaScript /
Вы можете использовать запросы AJAX для получения файлов RSS, но он будет работать тогда и только тогда, когда вы используете прокси-сервер CORS. Я попытаюсь написать свой собственный прокси-сервер CORS, чтобы предоставить вам более надежное решение. А пока работает, я развернул на своем сервере под Debian Linux.
Мое решение не использует JQuery, я использую только стандартные стандартные API-интерфейсы Javascript без сторонних библиотек, и оно должно работать даже с Microsoft Internet Explorer 11.
источник