RSS'yi jQuery ile ayrıştırma


194

RSS beslemelerini ayrıştırmak için jQuery kullanmak istiyorum. Bu temel jQuery kitaplığı kutudan çıkartılabilir mi yoksa bir eklenti kullanmam gerekir mi?


1
Github.com/sdepold/jquery-rss için gitmek istiyorum - şu anda en iyi seçenek, birden fazla seçenek mevcut! :)
Komrath

Google'dan buraya inen herkes için bir deviantART küçük resim görüntüleyici için benzer bir şey oluşturmak zorunda kaldım. Güzel ve basit ve kolayca genişletilebilir: adamjamesnaylor.com/2012/11/05/… . Google'ın yayın okuyucusunu kullandığını, ancak yalnızca JSON'a dönüştürdüğünü unutmayın.
Adam Naylor

Yanıtlar:


208

UYARI

Google Feed API'sı resmi olarak kullanımdan kaldırıldı ve artık çalışmıyor !


Bütün bir eklentiye gerek yok. Bu, RSS'nizi JSON nesnesi olarak geri arama işlevine döndürür:

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);
    }
  });
}

4
JFeed'i denedim ve işe yaramadı, bu iyi çalışıyor ve fazladan bir kütüphane gerektirmiyor.
diggersworld

15
farkında olun ... google api kullanarak, beslemeler önbellek böylece en son ve en büyük beslemeleri almak alışkanlık.
c0deNinja

3
nerede önbelleğe alınır? önbelleği nasıl kaldırabilirim?
Jeg Bagus

39
Bu harika bir cevap değil. Hizmetlerini sürdüren bir üçüncü taraf şirketine [Google] bağımlıdır. Orijinal soruya cevap vermez ("RSS'yi jQuery ile ayrıştır") ve bunun yerine Google'ı tanıtır. Google ajax API'larını düşürür veya değiştirirse ne olur? Web siteniz bozuldu.
Charles Goodwin

11
@CharlesGoodwin Google bu API'yı yeni kaldırdı! developers.google.com/feed/?hl=tr
GôTô

185

Bir jQuery RSS / Atom eklentisi olan jFeed kullanın . Dokümanlara göre, bu kadar basit:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});

2
gerçek kullanım örnekleri var mı? uyarıdan ziyade ayrıştırma ve görüntüleme. veya $ ("# results") kadar basit mi? append (feed.title)
Andy Brudtkuhl

3
NOT: indirmenin her türlü harika örneği var
Andy Brudtkuhl

12
Anirudha, belki 7-zip deneyebilirsiniz? Ücretsizdir, açık kaynaklıdır ve tar / gzip dahil olmak üzere çeşitli dosya türlerini açar.
Nathan Strutz

100
Bu eklentinin en son sürümünün Github'da bulunduğunu lütfen unutmayın .
Alan H.

3
jFeed artık aktif olarak korunmuyor gibi görünüyor (notun son değişikliği 2 yaşında ve birçok açık çekme isteği yok sayılıyor gibi görünüyor) ve jQuery'nin son sürümleriyle çalışmıyor.
Thilo

159

Tartışmaya geç gelenlerimiz için, 1.5 jQuery dahili xml ayrıştırma yeteneklerine sahiptir, bu da eklentiler veya 3. taraf hizmetleri olmadan bunu yapmayı oldukça kolaylaştırır. Bir parseXml işlevine sahiptir ve $ .get işlevini kullanırken xml'yi otomatik olarak ayrıştırır. Örneğin:

$.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...
    });
});

10
XmlHttpRequest hatası: Access-Control-Allow-Origin tarafından
kökene

12
@jackocnr, evet bu yöntemin dezavantajı bu. Kaynak sunucuda Access-Control-Allow-Origin üstbilgisini ayarlama erişiminiz yoksa etki alanları arası istekler yapamazsınız. Sunucu jsonp'yi destekliyorsa, bu en iyi seçenektir. Aksi takdirde, xml'yi almak için alan adınızdaki bir proxy komut dosyasını kullanabilir ve ardından dış sunucu yerine bu komut dosyasını çağırabilirsiniz.
David Hammond

Harici eklentilere veya hizmetlere dayanmayan tek cevap bu mu?
Mart'ta Blazemonger

Neden $this.find("link").text()hep boş dize döndürür ''?
Jeff Tian

@JeffTian, ​​xml'nizi görmeden söylemek zor. Bunun en açık nedeni <link> öğesinin eksik veya boş olmasıdır.
David Hammond

16

jFeed IE'de çalışmaz.

ZRSSFeed kullanın . 5 dakikada çalışıyor muydu


2
Nasıl zazar.net/developers/zrssfeed adresinde bulabilirsiniz Nasıl gittiğini görmek için kendimi denemek üzere, umut verici görünüyor.
thewinchester

3
BTW, zRssFeed dahili Google Feed RSS API'sını kullanır . Dolayısıyla, HTML düzeninin kendisini yapmak istiyorsa, bunun yerine doğrudan ona bakmak daha kolaydır.
Ciantic

beş dakika veya daha az :)
Köstence

süper serin ... tek şey, bir html yerine geri besleme fonksiyonu yerine besleme nesneleri sağlamak daha büyük olurdu ...
shahil

2
Bu eklentiyi kullanmak isteyen herkes. Geliştirici aşağıdakileri yayınladı. "BU PLUGIN DURDURULDU Eklentinin yanıtladığı Google Feeds API'sının hizmetten kaldırılması nedeniyle artık kullanılamayacak veya desteklenmeyecektir." Kaynak: zazar.net/developers/jquery/zrssfeed
phanf

16

Güncelleme (15 Eki 2019)

Temel mantığı jquery-rss'den getirme API'sını kullanan ve herhangi bir ek bağımlılık olmadan çalışabilen Vanilla RSS adlı yeni bir kütüphaneye çıkardım :

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');
});

orijinal

İleti:

Ayrıca hoş bir şablonla birlikte gelen ve kullanımı çok kolay olan jquery- rss'yi de kullanabilirsiniz:

$("#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>'
})

ürün (18 Eylül 2013 itibariyle):

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

Çalışan bir örnek için bkz. Http://jsfiddle.net/sdepold/ozq2dn9e/1/ .


Jquery-rss'nin, feed'i önbelleğe alan ve sorun yaratabilecek Google Feed API'sını kullandığını unutmayın. Yine de bir önemsiz URL parametresi ekleyerek bunu kandırabilirsiniz: stackoverflow.com/questions/13401936/…
kukabuka

tarih kullanmadan biçimlendirmek için lütfen bir örnek verinizmoment.js
Purvesh Desai

Şu snippet'i kontrol edin gist.github.com/sdepold/d1e5e0e7a66fc77930fe Bunun gibi bir şey oluşturur: "<bazı içerik>, [@ 2015-11-18]"
sdepold

Jquery-rss'in Google Feed API'sını DEĞİL, Feedr ( github.com/sdepold/feedrapp ) yedeğinin olduğunu ve orijinal API'nin kapalı olmasına rağmen sırasıyla iyi çalıştığını belirtmek istedim .
sdepold

15

JFeed kullanma

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>

9

RSS verileriniz özel değilse Google AJAX Feed API'sını kullanın. Tabii ki hızlı.

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


1
İyi bir fikir, ancak bir iletişim kutusu kullanarak proxy kimlik doğrulaması gerektiren bir güvenlik duvarının içindeyken çalışmaz.
thewinchester

google özet akışı kullanımdan kaldırıldı ve artık desteklenmiyor.
vikas etagi

8

GÜNCELLEME [ 25.04.2016 ] GitHub.jQRSS'de barındırılan daha fazla seçenek ve yetenekle daha iyi yazılmış ve tam olarak desteklenen sürüm

Nathan Strutz tarafından seçilen cevabı gördüm , ancak jQuery Eklentisi sayfa bağlantısı hala kapalı ve o sitenin ana sayfası yüklenmiyor gibi görünüyor. Birkaç çözüm daha denedim ve bunların çoğunun sadece eski değil KOLAY olduğunu gördüm ! Böylece şapkamı oraya attım ve kendi eklentimi yaptım ve buradaki ölü bağlantılar ile bu, cevap vermek için harika bir yer gibi görünüyor. Bu cevabı 2012'de arıyorsanız (yakında b 2013'e kadar) burada yaptığım gibi ölü bağlantıların ve eski tavsiyelerin hayal kırıklığını fark edebilirsiniz. Aşağıda, modern eklenti örneğimin yanı sıra eklentinin koduna bir bağlantı var ! Kodu bir JS dosyasına kopyalayın ve diğer eklentiler gibi başlığınıza bağlayın. Kullanım son derece EZ!

jsFiddle

Eklenti Kodu
2/9/2015 - consolekomut göndermeden önce kontrol etmek için gecikmiş güncelleme yapıldı ! Eski IE sorunları ile yardımcı olmalıdır.

(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);

KULLANIM

//  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 ('Bağlantı yerine' Burada Kelime Ara ', function (feed) {/ * do work * /}) // TODO: Düzeltme gerekiyor

Seçenekler

{
    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.
        */
}

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>

5

@Andrew'a katılıyorum , Google'ı kullanmak XML yerine JSON'u geri almanın büyük faydasıyla bunu yapmanın sağlam ve yeniden kullanılabilir bir yoludur. Google'ı proxy olarak kullanmanın ek bir avantajı, verilerine doğrudan erişiminizi engelleyebilecek hizmetlerin Google'ı durdurması pek olası değildir. İşte kayak raporu ve koşul verilerini kullanan bir örnek. Bu, tüm ortak gerçek dünya uygulamalarına sahiptir: 1) Üçüncü taraf RSS / XML 2) JSONP 3) Verileri tam olarak istediğiniz şekilde alamadığınızda dizeleri ve dizeyi temizleme 4) DOM. Umarım bazı insanlara yardımcı olur!

<!-- 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>

2
Alanlar arası sorunlar nedeniyle bu işe yaramayacak. JSONP'ye ihtiyacınız var.
gotofritz

1
Benim için çalışıyor. Test ettin mi? Google'ın ajax dataType değil geri arama parametresini kullanarak jsonp döndürdüğünden emin olabilirsiniz.
Dylan Valade

Downvote'un ne için olduğundan emin değilim. Bu kod hala üç yıl sonra çalışır. Hepsini konsola yapıştırdığınızda, bu sayfanın altbilgisine geçerli (XML) kayak koşullarının eklendiğini göreceksiniz.
Dylan Valade

4

jFeed biraz eski, sadece jQuery'nin eski sürümleriyle çalışıyor. Güncellenmesinden bu yana iki yıl geçti.

zRSSFeed belki biraz daha az esnektir, ancak kullanımı kolaydır ve jQuery'nin şu anki sürümü ile çalışır (şu anda 1.4). http://www.zazar.net/developers/zrssfeed/

İşte zRSSFeed belgelerinden kısa bir örnek:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>

Bunun Google Feed API'sını kullandığından yalnızca yerel olmayan feed'lerle çalıştığını unutmayın (Google, feed xml dosyasını yükleyebilmelidir).
CmdrTallen


2

FeedEk kullanmanızı tavsiye ederim . Google Feed API'sı resmi olarak kullanımdan kaldırıldıktan sonra eklentilerin çoğu çalışmaz. Ancak FeedEk hala çalışıyor. Kullanımı çok kolaydır ve özelleştirmek için birçok seçeneğe sahiptir.

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

Seçenekler ile

$('#divRss').FeedEk({
  FeedUrl:'http://jquery-plugins.net/rss',
  MaxCount : 5,
  ShowDesc : true,
  ShowPubDate:true,
  DescCharacterLimit:100,
  TitleLinkTarget:'_blank',
  DateFormat: 'MM/DD/YYYY',
  DateFormatLang:'en'
});

Aslında alternatif bir api uç noktası tanımlayabileceğinizden emin değilim, ancak yapabilseydiniz, google feed api'sini feedrapp ile değiştirme olasılığı olurdu: github.com/sdepold/feedrapp (jquery için omurga da) -rss günümüzde)
sdepold

Bu ayrıştırma yapmaz. Ayrıştırma yapmak için yahooapis kullanır, sonra sadece içeriği görüntüler.
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>

Kötü bir cevap değil, ama maalesef kodu yapıştırarak en iyi işi yapmadınız. ;-)
Till

0

Google ajax api kullanın google ve istediğiniz herhangi bir çıkış biçimi tarafından önbelleğe.

Kod örneği; 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>

Bu harika bir seçenektir çünkü jquery'ye güvenmez!
Pete Gardner



-1

jQuery Feeds güzel bir seçenektir, yerleşik bir şablonlama sistemine sahiptir ve Google Feed API'sını kullanır, bu nedenle web alanları arası desteğe sahiptir.



-2

jFeed kolaydır ve test etmeniz için bir örnek vardır . Ancak başka bir sunucudan yayın ayrıştırıyorsanız, yayın sunucusunda Çapraz Kaynak Kaynağı Paylaşımına (CORS) izin vermeniz gerekir . Ayrıca tarayıcı desteğini kontrol etmeniz gerekir .

Örneği yükledim ancak http protokolü üzerinden example.com/feed.rss gibi bir şeye örnekte URL'yi değiştirdiğimde hala IE'den destek alamadım. CORS IE 8 ve üstü için desteklenmelidir, ancak jFeed örneği feed'i oluşturmamıştır.

En iyi seçeneğiniz Google'ın API'sını kullanmaktır:
https://developers.google.com/feed/v1/devguide

Bkz.
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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.