Analizar RSS con jQuery

194

Quiero usar jQuery para analizar fuentes RSS. ¿Se puede hacer esto con la biblioteca jQuery base lista para usar o tendré que usar un complemento?

Andy Brudtkuhl
fuente
1
Me gustaría ir a github.com/sdepold/jquery-rss : es la mejor opción en este momento, ¡hay varias opciones disponibles! :)
Komrath
Para cualquiera que aterrice aquí desde Google, tuve que crear algo similar para un visor de miniaturas deviantART. Agradable y simple y fácilmente extensible: adamjamesnaylor.com/2012/11/05/… . Tenga en cuenta que utiliza el lector de feeds de Google, pero solo para convertirlo en JSON.
Adam Naylor

Respuestas:

208

ADVERTENCIA

¡La API de Google Feed está oficialmente en desuso y ya no funciona !


No es necesario un complemento completo. Esto devolverá su RSS como un objeto JSON a una función de devolución de llamada:

function parseRSS(url, callback) {
  $.ajax({
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
      callback(data.responseData.feed);
    }
  });
}
Andrew Childs
fuente
44
Intenté jFeed y no funcionó, esto funciona bien y no requiere una biblioteca adicional.
diggersworld
15
tenga en cuenta ... usando la API de Google, los feeds se almacenan en caché para que no obtenga los últimos y mejores feeds.
c0deNinja
3
donde esta guardado ¿Cómo puedo eliminar el caché?
Jeg Bagus
39
Esta no es una gran respuesta. Depende de una empresa externa [Google] que mantenga su servicio. No responde la pregunta original ("Parse RSS con jQuery") y en su lugar anuncia Google. ¿Qué pasa si Google cae o modifica su API ajax? Tu sitio web se rompe.
Charles Goodwin
11
¡@CharlesGoodwin Google acaba de eliminar esta API! developers.google.com/feed/?hl=en
GôTô
185

Use jFeed , un complemento jQuery RSS / Atom. Según los documentos, es tan simple como:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});
Nathan Strutz
fuente
2
¿Algún ejemplo de uso en el mundo real? es decir, análisis y visualización en lugar de alerta. o es tan simple como $ ("# resultados"). append (feed.title)
Andy Brudtkuhl
3
NOTA: la descarga tiene todo tipo de excelentes ejemplos
Andy Brudtkuhl el
12
Anirudha, ¿tal vez puedas probar 7-zip? Es gratuito, de código abierto y abre una variedad de tipos de archivos, incluidos tar / gzip.
Nathan Strutz el
100
Tenga en cuenta que la última versión de este complemento está disponible en Github .
Alan H.
3
Parece que jFeed ya no se mantiene activamente (el último cambio de nota tiene 2 años, y muchas solicitudes de extracción abiertas parecen ignorarse), y no funciona con versiones recientes de jQuery.
Thilo
159

Para aquellos de nosotros que llegamos tarde a la discusión, comenzando con 1.5 jQuery tiene capacidades de análisis XML integradas, lo que hace que sea bastante fácil hacerlo sin complementos o servicios de terceros. Tiene una función parseXml y también analizará automáticamente xml cuando use la función $ .get. P.ej:

$.get(rssurl, function(data) {
    var $xml = $(data);
    $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                title: $this.find("title").text(),
                link: $this.find("link").text(),
                description: $this.find("description").text(),
                pubDate: $this.find("pubDate").text(),
                author: $this.find("author").text()
        }
        //Do something with item here...
    });
});
David Hammond
fuente
10
Error XmlHttpRequest: el origen no está permitido por Access-Control-Allow-Origin
jackocnr
12
@jackocnr, sí, esa es la desventaja de este método. No puede realizar solicitudes entre dominios a menos que tenga acceso para configurar el encabezado Access-Control-Allow-Origin en el servidor de origen. Si el servidor admite jsonp, entonces esa es su mejor opción. De lo contrario, puede usar un script proxy dentro de su dominio para recuperar el xml y luego llamar a ese script en lugar del servidor externo.
David Hammond
¿Es esta realmente la única respuesta que no depende de complementos o servicios externos?
Blazemonger
¿Por qué el $this.find("link").text()siempre devuelve una cadena vacía ''?
Jeff Tian
@JeffTian, ​​difícil de decir sin ver tu xml. La razón más obvia sería que falta el elemento <link> o está vacío.
David Hammond el
16

jFeed no funciona en IE.

Utilice zRSSFeed . Lo tenía funcionando en 5 minutos

Mark Steggles
fuente
2
Disponible en zazar.net/developers/zrssfeed Acerca de probarlo yo mismo para ver cómo funciona, parece prometedor.
thewinchester
3
Por cierto, zRssFeed utiliza internamente la API RSS de Google Feed . Entonces, si uno quiere hacer el diseño HTML en sí mismo, es más fácil simplemente mirarlo directamente.
Ciantic
cinco minutos o menos :)
Constanta
super cool ... Lo único es que si se les suministran objetos de la alimentación en lugar de todo el html en una función de devolución de llamada que eso sería genial ...
Shahil
2
Para su información cualquiera que quiera usar este complemento. El desarrollador publicó lo siguiente. "ESTE PLUGIN SE HA DESCONTINUADO Debido a que la API de Feeds de Google se eliminó del servicio, a lo que respondió el complemento, ya no estará disponible ni será compatible". Fuente: zazar.net/developers/jquery/zrssfeed
phanf
16

Actualización (15 de octubre de 2019)

Extraje la lógica central de jquery-rss a una nueva biblioteca llamada Vanilla RSS que está utilizando la API de recuperación y puede funcionar sin dependencias adicionales:

const RSS = require('vanilla-rss');
const rss = new RSS(
    document.querySelector("#your-div"),
    "http://www.recruiter.com/feed/career.xml",
    { 
      // options go here
    }
);
rss.render().then(() => {
  console.log('Everything is loaded and rendered');
});

Original

enviar:

También puede usar jquery-rss , que viene con una buena plantilla y es súper fácil de usar:

$("#your-div").rss("http://www.recruiter.com/feed/career.xml", {
    limit: 3,
    layoutTemplate: '<ul class="inline">{entries}</ul>',
    entryTemplate: '<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>'
})

rendimientos (a partir del 18 de septiembre de 2013):

<div id="your-div">
    <ul class="inline">
    <entries></entries>
    </ul>
    <ul class="inline">
        <li><a href="http://www.recruiter.com/i/when-to-go-over-a-recruiter%e2%80%99s-head/">[@Tue, 10 Sep 2013 22:23:51 -0700] When to Go Over a Recruiter's Head</a><br>Job seekers tend to have a certain "fear" of recruiters and hiring managers, and I mean fear in the reverence and respect ...</li>
        <li><a href="http://www.recruiter.com/i/the-perfect-job/">[@Tue, 10 Sep 2013 14:52:40 -0700] The Perfect Job</a><br>Having long ago dealt with the "perfect resume" namely God's, in a previous article of mine, it makes sense to consider the ...</li>
        <li><a href="http://www.recruiter.com/i/unemployment-benefits-applications-remain-near-5-year-low-decline-again/">[@Mon, 09 Sep 2013 12:49:17 -0700] Unemployment Benefits Applications Remain Near 5-Year Low, Decline Again</a><br>As reported by the U.S. Department of Labor, the number of workers seeking unemployment benefits continued to sit near ...</li>
    </ul>
</div>

Consulte http://jsfiddle.net/sdepold/ozq2dn9e/1/ para ver un ejemplo de trabajo.

sdepold
fuente
Tenga en cuenta que jquery-rss utiliza la API de Google Feed que almacenará en caché el feed, lo que podría presentar un problema. Sin embargo, puede engañarlo agregando un parámetro de URL no
deseable
proporcione un ejemplo para formatear la fecha sin el uso demoment.js
Purvesh Desai
Consulte el siguiente fragmento gist.github.com/sdepold/d1e5e0e7a66fc77930fe Generará algo como esto: "<algún contenido>, [@ 2015-11-18]"
sdepold
Solo quería mencionar que jquery-rss NO está utilizando la API de Google Feed, sino un reemplazo directo llamado Feedr ( github.com/sdepold/feedrapp ) y, respectivamente, funciona bien a pesar de que la API original está desactivada.
comenzó el
15

Usando JFeed

function getFeed(sender, uri) {
    jQuery.getFeed({
        url: 'proxy.php?url=' + uri,
        success: function(feed) {
            jQuery(sender).append('<h2>'
            + '<a href="'
            + feed.link
            + '">'
            + feed.title
            + '</a>'
            + '</h2>');

            var html = '';

            for(var i = 0; i < feed.items.length && i < 5; i++) {

                var item = feed.items[i];

                html += '<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';

                html += '<div class="updated">'
                + item.updated
                + '</div>';

                html += '<div>'
                + item.description
                + '</div>';
            }

            jQuery(sender).append(html);
        }    
    });
}

<div id="getanewbrowser">
  <script type="text/javascript">
    getFeed($("#getanewbrowser"), 'http://feeds.feedburner.com/getanewbrowser')
  </script>
</div>
Andy Brudtkuhl
fuente
9

Utilice la API de fuente de Google AJAX a menos que sus datos RSS sean privados. Es rápido, por supuesto.

https://developers.google.com/feed/

yogman
fuente
1
Una buena idea, pero no funciona cuando se encuentra dentro de un firewall que requiere autenticación de proxy mediante un cuadro de diálogo.
thewinchester
el feed de google está en desuso y ya no es compatible.
vikas etagi
8

ACTUALIZACIÓN [ 25/4/2016 ] Ahora mejor versión escrita y totalmente compatible con más opciones y habilidades alojadas en GitHub.jQRSS

Vi la respuesta seleccionada de Nathan Strutz , sin embargo, el enlace de la página jQuery Plugin todavía está inactivo y la página de inicio de ese sitio no parecía cargarse. Probé algunas otras soluciones y descubrí que la mayoría de ellas no solo estaban desactualizadas, ¡sino FÁCILES ! Así que arrojé mi sombrero e hice mi propio complemento, y con los enlaces muertos aquí, este parece ser un gran lugar para enviar una respuesta. Si está buscando esta respuesta en 2012 (pronto b 2013), puede notar la frustración de los enlaces muertos y los consejos antiguos aquí como lo hice yo. ¡A continuación hay un enlace a mi ejemplo de complemento moderno , así como el código del complemento! Simplemente copie el código en un archivo JS y vincúlelo en su encabezado como cualquier otro complemento. El uso es EXTREMADAMENTE EZ!

jsFiddle

Código de complemento
2/9/2015: ¡se realizó una actualización muy pendiente para verificar consoleantes de enviarle comandos! Debería ayudar con problemas anteriores de IE.

(function($) {
    if (!$.jQRSS) { 
        $.extend({  
            jQRSS: function(rss, options, func) {
                if (arguments.length <= 0) return false;

                var str, obj, fun;
                for (i=0;i<arguments.length;i++) {
                    switch(typeof arguments[i]) {
                        case "string":
                            str = arguments[i];
                            break;
                        case "object":
                            obj = arguments[i];
                            break;
                        case "function":
                            fun = arguments[i];
                            break;
                    }
                }

                if (str == null || str == "") {
                    if (!obj['rss']) return false;
                    if (obj.rss == null || obj.rss == "") return false;
                }

                var o = $.extend(true, {}, $.jQRSS.defaults);

                if (typeof obj == "object") {
                    if ($.jQRSS.methods.getObjLength(obj) > 0) {
                        o = $.extend(true, o, obj);
                    }
                }

                if (str != "" && !o.rss) o.rss = str;
                o.rss = escape(o.rss);

                var gURL = $.jQRSS.props.gURL 
                    + $.jQRSS.props.type 
                    + "?v=" + $.jQRSS.props.ver
                    + "&q=" + o.rss
                    + "&callback=" + $.jQRSS.props.callback;

                var ajaxData = {
                        num: o.count,
                        output: o.output,
                    };

                if (o.historical) ajaxData.scoring = $.jQRSS.props.scoring;
                if (o.userip != null) ajaxData.scoring = o.userip;

                $.ajax({
                    url: gURL,
                    beforeSend: function (jqXHR, settings) { if (window['console']) { console.log(new Array(30).join('-'), "REQUESTING RSS XML", new Array(30).join('-')); console.log({ ajaxData: ajaxData, ajaxRequest: settings.url, jqXHR: jqXHR, settings: settings, options: o }); console.log(new Array(80).join('-')); } },
                    dataType: o.output != "xml" ? "json" : "xml",
                    data: ajaxData,
                    type: "GET",
                    xhrFields: { withCredentials: true },
                    error: function (jqXHR, textStatus, errorThrown) { return new Array("ERROR", { jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown } ); },
                    success: function (data, textStatus, jqXHR) {  
                        var f = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : null : null,
                            e = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed['entries'] ? data.responseData.feed.entries : null : null : null
                        if (window['console']) {
                            console.log(new Array(30).join('-'), "SUCCESS", new Array(30).join('-'));
                            console.log({ data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e });
                            console.log(new Array(70).join('-'));
                        }

                        if (fun) {
                            return fun.call(this, data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : data.responseData : null);
                        }
                        else {
                            return { data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e };
                        }
                    }
                });
            }
        });
        $.jQRSS.props = {
            callback: "?",
            gURL: "http://ajax.googleapis.com/ajax/services/feed/",
            scoring: "h",
            type: "load",
            ver: "1.0"
        };
        $.jQRSS.methods = {
            getObjLength: function(obj) {
                if (typeof obj != "object") return -1;
                var objLength = 0;
                $.each(obj, function(k, v) { objLength++; })
                return objLength;
            }
        };
        $.jQRSS.defaults = {
            count: "10", // max 100, -1 defaults 100
            historical: false,
            output: "json", // json, json_xml, xml
            rss: null,  //  url OR search term like "Official Google Blog"
            userip: null
        };
    }
})(jQuery);

UTILIZAR

//  Param ORDER does not matter, however, you must have a link and a callback function
//  link can be passed as "rss" in options
//  $.jQRSS(linkORsearchString, callbackFunction, { options })

$.jQRSS('someUrl.xml', function(feed) { /* do work */ })

$.jQRSS(function(feed) { /* do work */ }, 'someUrl.xml', { count: 20 })

$.jQRSS('someUrl.xml', function(feed) { /* do work */ }, { count: 20 })

$.jQRSS({ count: 20, rss: 'someLink.xml' }, function(feed) { /* do work */ })

$ .jQRSS ('Buscar palabras aquí en lugar de un enlace', función (feed) {/ * do work * /}) // TODO: necesita corrección

Opciones

{
    count: // default is 10; max is 100. Setting to -1 defaults to 100
    historical: // default is false; a value of true instructs the system to return any additional historical entries that it might have in its cache. 
    output: // default is "json"; "json_xml" retuns json object with xmlString / "xml" returns the XML as String
    rss: // simply an alternate place to put news feed link or search terms
    userip: // as this uses Google API, I'll simply insert there comment on this:
        /*  Reference: https://developers.google.com/feed/v1/jsondevguide
            This argument supplies the IP address of the end-user on 
            whose behalf the request is being made. Google is less 
            likely to mistake requests for abuse when they include 
            userip. In choosing to utilize this parameter, please be 
            sure that you're in compliance with any local laws, 
            including any laws relating to disclosure of personal 
            information being sent.
        */
}
SpYk3HH
fuente
5
(function(url, callback) {
    jQuery.ajax({
        url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
        dataType: 'json',
        success: function(data) {
            callback(data.responseData.feed);
        }
    });
})('http://news.hitb.org/rss.xml', function(feed){ // Change to desired URL
    var entries = feed.entries, feedList = '';
    for (var i = 0; i < entries.length; i++) {
        feedList +='<li><a href="' + entries[i].link + '">' + entries[i].title + '</a></li>';
    }
    jQuery('.feed > ul').append(feedList);
});


<div class="feed">
        <h4>Hacker News</h4>
        <ul></ul>
</div>
John Magnolia
fuente
5

Estoy de acuerdo con @Andrew , usar Google es una forma sólida y reutilizable de hacerlo con la gran ventaja de que obtienes JSON en lugar de XML. Una ventaja adicional de usar Google como proxy es que es poco probable que los servicios que pueden bloquear su acceso directo a sus datos detengan a Google. Aquí hay un ejemplo usando el informe de esquí y los datos de condiciones. Esto tiene todas las aplicaciones comunes del mundo real: 1) RSS / XML de terceros 2) JSONP 3) Limpieza de cadenas y cadenas a matriz cuando no puede obtener los datos exactamente como lo desea 4) al cargar, agregue elementos al DOM. ¡Espero que esto ayude a algunas personas!

<!-- Load RSS Through Google as JSON using jQuery -->
<script type="text/javascript">

    function displaySkiReport (feedResponse) {

    // Get ski report content strings
    var itemString = feedResponse.entries[0].content;
    var publishedDate = feedResponse.entries[0].publishedDate;

    // Clean up strings manually as needed
    itemString = itemString.replace("Primary: N/A", "Early Season Conditions"); 
    publishedDate = publishedDate.substring(0,17);

    // Parse ski report data from string
    var itemsArray = itemString.split("/");


    //Build Unordered List
    var html = '<h2>' + feedResponse.entries[0].title + '</h2>';
    html += '<ul>';

    html += '<li>Skiing Status: ' + itemsArray[0] + '</li>';
    // Last 48 Hours
    html += '<li>' + itemsArray[1] + '</li>';
    // Snow condition
    html += '<li>' + itemsArray[2] + '</li>';
    // Base depth
    html += '<li>' + itemsArray[3] + '</li>';

    html += '<li>Ski Report Date: ' + publishedDate + '</li>';

    html += '</ul>';

    $('body').append(html);    

    }


    function parseRSS(url, callback) {
      $.ajax({
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
      callback(data.responseData.feed);
    }
      });
    }

    $(document).ready(function() {              

        // Ski report
        parseRSS("http://www.onthesnow.com/michigan/boyne-highlands/snow.rss", displaySkiReport);

    });

</script>
Dylan Valade
fuente
2
Esto no va a funcionar debido a problemas entre dominios. Necesitas JSONP.
gotofritz
1
Esto funciona para mi. ¿Lo probaste? Bastante seguro de que Google devuelve jsonp utilizando el parámetro de devolución de llamada, no ajax dataType.
Dylan Valade
No estoy seguro de para qué fue el voto negativo. Este código aún funciona tres años después. Péguelo todo en la consola y verá las condiciones actuales de esquí (XML) agregadas al pie de página de esta página.
Dylan Valade
4

jFeed es algo obsoleto, solo funciona con versiones anteriores de jQuery. Han pasado dos años desde que se actualizó.

zRSSFeed es quizás un poco menos flexible, pero es fácil de usar y funciona con la versión actual de jQuery (actualmente 1.4). http://www.zazar.net/developers/zrssfeed/

Aquí hay un ejemplo rápido de los documentos de zRSSFeed:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>
Alderete
fuente
Cabe señalar que esto solo funciona con feeds no locales, ya que utiliza la API de Google Feed (Google debe poder cargar el feed xml).
CmdrTallen
2

Te aconsejo que uses FeedEk . Después de que la API de Google Feed está oficialmente en desuso, la mayoría de los complementos no funcionan. Pero FeedEk sigue funcionando. Es muy fácil de usar y tiene muchas opciones para personalizar.

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

Con opciones

$('#divRss').FeedEk({
  FeedUrl:'http://jquery-plugins.net/rss',
  MaxCount : 5,
  ShowDesc : true,
  ShowPubDate:true,
  DescCharacterLimit:100,
  TitleLinkTarget:'_blank',
  DateFormat: 'MM/DD/YYYY',
  DateFormatLang:'en'
});
jQP
fuente
No estoy seguro de si realmente puede definir un punto final de API alternativo, pero si pudiera, podría existir la posibilidad de reemplazar la API de feed de Google con feedrapp: github.com/sdepold/feedrapp (que también es la columna vertebral de jquery -rss hoy en día)
comenzó el
Esto no hace análisis. Utiliza yahooapis para realizar el análisis, luego solo muestra el contenido.
David L.
1
<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>
kabuski
fuente
No es una mala respuesta, pero desafortunadamente no hiciste el mejor trabajo pegando el código. ;-)
Hasta el
0

Utilice la API de Google Ajax , almacenada en caché por Google y cualquier formato de salida que desee.

Código de muestra; 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>
Daniel Magnusson
fuente
¡esta es una gran opción porque no depende de jquery!
Pete Gardner
0

zRSSfeed se basa en jQuery y el tema simple es increíble.
Darle una oportunidad.

Guruprasad Balaji
fuente
-1

jQuery Feeds es una buena opción, tiene un sistema de plantillas incorporado y utiliza la API de Google Feed, por lo que tiene soporte de dominio cruzado.

camagu
fuente
-1

Superfeedr tiene un complemento jquery que lo hace muy bien. No tendrá ningún problema con la Política de origen cruzado y las actualizaciones se propagan en tiempo real.

Julien Genestoux
fuente
¿Por qué esta solución no tendría problemas con CORS?
2016
-2

jFeed es fácil y tiene un ejemplo para que lo pruebes . Pero si está analizando un feed de otro servidor, deberá permitir el uso compartido de recursos de origen cruzado (CORS) en el servidor del feed. También deberá verificar el soporte del navegador .

Subí la muestra pero aún no obtuve soporte de IE en ninguna versión cuando cambié la url del ejemplo a algo así como example.com/feed.rss a través del protocolo http. CORS debería ser compatible con IE 8 y superior, pero el ejemplo de jFeed no mostraba el feed.

Su mejor opción es utilizar la API de Google:
https://developers.google.com/feed/v1/devguide

Ver:
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

Rimian
fuente