Разбор RSS с помощью jQuery - PullRequest
       146

Разбор RSS с помощью jQuery

191 голосов
/ 22 октября 2008

Я хочу использовать jQuery для разбора RSS-каналов. Можно ли это сделать с помощью базовой библиотеки jQuery из коробки или мне нужно будет использовать плагин?

Ответы [ 20 ]

4 голосов
/ 10 июня 2010

jFeed несколько устарел, работает только со старыми версиями jQuery. Прошло два года с момента его обновления.

zRSSFeed, возможно, немного менее гибок, но прост в использовании и работает с текущей версией jQuery (в настоящее время 1.4). http://www.zazar.net/developers/zrssfeed/

Вот краткий пример из документации zRSSFeed:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>
2 голосов
/ 13 апреля 2010

Я использую jquery с yql для подачи. Вы можете получить Twitter, RSS, Buzz с YQL. Я прочитал от http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/. Это очень полезно для меня.

1 голос
/ 27 февраля 2010
<script type="text/javascript" src="./js/jquery/jquery.js"></script>
<script type="text/javascript" src="./js/jFeed/build/dist/jquery.jfeed.pack.js"></script>
<script type="text/javascript">
    function loadFeed(){
        $.getFeed({
            url: 'url=http://sports.espn.go.com/espn/rss/news/',
            success: function(feed) {

                //Title
                $('#result').append('<h2><a href="' + feed.link + '">' + feed.title + '</a>' + '</h2>');

                //Unordered List
                var html = '<ul>';

                $(feed.items).each(function(){
                    var $item = $(this);

                    //trace( $item.attr("link") );
                    html += '<li>' +
                        '<h3><a href ="' + $item.attr("link") + '" target="_new">' +
                        $item.attr("title") + '</a></h3> ' +
                        '<p>' + $item.attr("description") + '</p>' +
                        // '<p>' + $item.attr("c:date") + '</p>' +
                        '</li>';
                });

                html += '</ul>';

                $('#result').append(html);
            }
        });
    }
</script>
1 голос
/ 12 декабря 2015

Советую использовать FeedEk . После официального прекращения использования Google Feed API большинство плагинов не работает. Но FeedEk все еще работает. Он очень прост в использовании и имеет множество опций для настройки.

$('#divRss').FeedEk({
   FeedUrl:'http://jquery-plugins.net/rss'
});

С опциями

$('#divRss').FeedEk({
  FeedUrl:'http://jquery-plugins.net/rss',
  MaxCount : 5,
  ShowDesc : true,
  ShowPubDate:true,
  DescCharacterLimit:100,
  TitleLinkTarget:'_blank',
  DateFormat: 'MM/DD/YYYY',
  DateFormatLang:'en'
});
0 голосов
/ 21 сентября 2011

zRSSfeed построен на jQuery и простая тема потрясающая.
Попробуйте.

0 голосов
/ 24 января 2014

Superfeedr имеет jquery плагин , который делает это очень хорошо. У вас не будет проблем с политикой перекрестного происхождения, а обновления распространяются в режиме реального времени.

0 голосов
/ 02 августа 2013

Проект jQuery-rss довольно легкий и не навязывает какой-либо конкретный стиль.

Синтаксис может быть таким простым, как

$("#rss-feeds").rss("http://www.recruiter.com/feed/career.xml")

См. рабочий пример на http://jsfiddle.net/jhfrench/AFHfn/

0 голосов
/ 11 мая 2012

jFeed прост и имеет пример для тестирования. Но если вы анализируете фид с другого сервера, вам нужно разрешить Cross Origin Resource Sharing (CORS) на сервере фида. Вам также необходимо проверить поддержку браузера .

Я загрузил образец , но по-прежнему не получал поддержки от IE ни в одной версии, когда я изменил URL в примере на что-то вроде example.com/feed.rss по протоколу http. CORS должен поддерживаться для IE 8 и выше, но пример jFeed не отображал фид.

Лучше всего использовать API Google:
https://developers.google.com/feed/v1/devguide

См:
https://github.com/jfhovinne/jFeed
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
http://en.wikipedia.org/wiki/Same_origin_policy
http://caniuse.com/cors

0 голосов
/ 09 октября 2012

Используйте google ajax api , кэшируется Google и любой формат вывода.

Пример кода; http://code.google.com/apis/ajax/playground/#load_feed

<script src="http://www.google.com/jsapi?key=AIzaSyA5m1Nc8ws2BbmPRwKu5gFradvD_hgq6G0" type="text/javascript"></script>
<script type="text/javascript">
/*
*  How to load a feed via the Feeds API.
*/

google.load("feeds", "1");

// Our callback function, for when a feed is loaded.
function feedLoaded(result) {
  if (!result.error) {
    // Grab the container we will put the results into
    var container = document.getElementById("content");
    container.innerHTML = '';

    // Loop through the feeds, putting the titles onto the page.
    // Check out the result object for a list of properties returned in each entry.
    // http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON
    for (var i = 0; i < result.feed.entries.length; i++) {
      var entry = result.feed.entries[i];
      var div = document.createElement("div");
      div.appendChild(document.createTextNode(entry.title));
      container.appendChild(div);
    }
  }
}

function OnLoad() {
  // Create a feed instance that will grab Digg's feed.
  var feed = new google.feeds.Feed("http://www.digg.com/rss/index.xml");

  // Calling load sends the request off.  It requires a callback function.
  feed.load(feedLoaded);
}

google.setOnLoadCallback(OnLoad);
</script>
0 голосов
/ 13 июля 2012

jQuery Feeds - хороший вариант, он имеет встроенную систему шаблонов и использует Google Feed API, поэтому он имеет междоменную поддержку.

...