JQuery के साथ पार्स आरएसएस


194

मैं आरएसएस फ़ीड को पार्स करने के लिए jQuery का उपयोग करना चाहता हूं। क्या यह बॉक्स से बाहर बेस jQuery लाइब्रेरी के साथ किया जा सकता है या मुझे एक प्लगइन का उपयोग करने की आवश्यकता होगी?


1
मैं github.com/sdepold/jquery-rss के लिए जाऊंगा - यह अभी सबसे अच्छा विकल्प है, कई विकल्प उपलब्ध हैं! :)
कोमथ

Google से किसी के भी यहाँ उतरने के लिए मुझे एक विचलन थंबनेल दर्शक के लिए एक समान चीज़ बनानी होगी। अच्छा और सरल और आसानी से उपलब्ध: adamjamesnaylor.com/2012/11/05/… । ध्यान दें कि यह Google के फ़ीड रीडर का उपयोग करता है, लेकिन केवल इसे JSON में बदलने के लिए।
एडम नाइलर

जवाबों:


208

चेतावनी

Google फ़ीड API आधिकारिक तौर पर हटा दिया गया है और अब और काम नहीं करता है !


पूरे प्लगइन की आवश्यकता नहीं है। यह आपके RSS को कॉलबैक फ़ंक्शन के JSON ऑब्जेक्ट के रूप में लौटाएगा:

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 की कोशिश की और यह काम नहीं किया, यह ठीक काम करता है और एक अतिरिक्त पुस्तकालय की आवश्यकता नहीं है।
डिगर्सवर्ल्ड

15
जागरूक रहें ... Google एपीआई का उपयोग करते हुए, फ़ीड्स को कैश कर दिया जाता है ताकि आप नवीनतम और सबसे बड़ी फीड प्राप्त न कर सकें।
c0deNinja

3
यह कहाँ कैश्ड है? मैं कैश कैसे निकाल सकता हूँ?
जेग बगस

39
यह एक महान जवाब नहीं है। यह तीसरे पक्ष की कंपनी [Google] पर निर्भर है जो उनकी सेवा बनाए रखती है। यह मूल प्रश्न का जवाब नहीं देता है ("jQuery के साथ पार्स आरएसएस") और इसके बजाय Google का विज्ञापन करता है। क्या होगा अगर Google अपने ajax एपीआई को गिराता है या संशोधित करता है? आपकी वेबसाइट टूट जाती है।
चार्ल्स गुडविन

11
@CharlesGoodwin Google ने अभी इस API को निकाला है! Developers.google.com/feed/?hl=en
गोचर

185

JFeed का प्रयोग करें - jQuery RSS / Atom plugin। डॉक्स के अनुसार, यह उतना ही सरल है:

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

2
वास्तविक दुनिया के उपयोग के किसी भी उदाहरण? यानी अलर्ट के बजाय पार्स करना और प्रदर्शित करना। या यह $ ("# परिणाम") के रूप में सरल है। एपेंडेंड (फीडटिटल)
एंडी ब्रूड्टुकल

3
ध्यान दें: डाउनलोड में सभी प्रकार के महान उदाहरण हैं
एंडी ब्रूड्टुखल

12
अनिरुद्ध, शायद आप 7-ज़िप की कोशिश कर सकते हैं? यह मुफ़्त है, खुला स्रोत है, और टार / गज़िप सहित विभिन्न प्रकार की फ़ाइल खोलता है।
नाथन स्ट्रटज़

100
कृपया ध्यान दें कि इस प्लगइन का नवीनतम संस्करण Github पर उपलब्ध है
एलन एच।

3
jFeed अब सक्रिय रूप से बनाए रखा नहीं लगता है (नोट का अंतिम परिवर्तन 2 साल पुराना है, और कई खुले पुल अनुरोधों को नजरअंदाज कर दिया जाता है), और jQuery के हालिया रिलीज के साथ काम नहीं करता है।
थिलो

159

हम में से जो लोग देर से चर्चा में आ रहे हैं, उनके लिए 1.5 jQuery के साथ शुरू में अंतर्निहित xml पार्सिंग क्षमताएं हैं, जो प्लग इन या 3 पार्टी सेवाओं के बिना ऐसा करना बहुत आसान बनाता है। इसमें पार्सएक्सएमएल फ़ंक्शन है, और $ .get फ़ंक्शन का उपयोग करते समय एक्सएमएल ऑटो-पार्स भी होगा। उदाहरण के लिए:

$.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 त्रुटि: मूल को एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा अनुमति नहीं है
jackocnr

12
@jackocnr, हाँ, यह इस विधि का नकारात्मक पक्ष है। जब तक आपके पास स्रोत सर्वर पर एक्सेस-कंट्रोल-अनुमति-मूल हेडर सेट करने के लिए एक्सेस न हो, आप क्रॉस-डोमेन अनुरोध नहीं कर सकते। यदि सर्वर jsonp का समर्थन करता है, तो यह आपकी सबसे अच्छी शर्त है। अन्यथा, आप xml को पुनः प्राप्त करने के लिए अपने डोमेन के भीतर एक प्रॉक्सी स्क्रिप्ट का उपयोग कर सकते हैं और फिर बाहरी सर्वर के बजाय उस स्क्रिप्ट को कॉल कर सकते हैं।
डेविड हैमोंड

क्या यह वास्तव में एकमात्र उत्तर है जो बाहरी प्लगइन्स या सेवाओं पर निर्भर नहीं करता है?
ब्लेज़मॉन्गर

$this.find("link").text()हमेशा खाली स्ट्रिंग '' क्यों लौटाता है?
जेफ तियान

@JeffTian, ​​अपने xml को देखे बिना कहना मुश्किल है। सबसे स्पष्ट कारण यह होगा कि <लिंक> तत्व गायब या खाली है।
डेविड हैमंड 7

16

jFeed IE में काम नहीं करता है।

ZRSSFeed का उपयोग करें । यह 5 मिनट में काम कर रहा था


2
Zazar.net/developers/zrssfeed पर उपलब्ध यह देखने के लिए कि यह कैसे जाता है, अपने आप को आज़माने का प्रयास करता है।
thewinchester

3
BTW, zRssFeed आंतरिक रूप से Google फ़ीड RSS API का उपयोग करता है । इसलिए यदि कोई HTML लेआउट स्वयं करना चाहता है तो इसके बजाय सीधे सीधे देखना आसान है।
१४:१४ बजे केल्टिक

पांच मिनट या उससे कम :)
कांस्टेंट

सुपर कूल ... केवल एक चीज है अगर वे कॉलबैक फ़ंक्शन में पूरे HTML के बजाय फीड ऑब्जेक्ट प्रदान कर रहे थे, तो इससे भी बढ़िया होगा ...
shahil

2
FYI करें कोई भी इस प्लगइन का उपयोग करना चाहता है। डेवलपर ने निम्नलिखित पोस्ट किया। "यह प्‍लगिन डिसकंटिन्यूड है, Google फीड्स एपीआई को सेवा से हटाए जाने के कारण, जिस पर प्लगइन ने उत्तर दिया है, वह अब उपलब्ध या समर्थित नहीं होगा।" स्रोत: zazar.net/developers/jquery/zrssfeed
फनफ

16

अपडेट (15 अक्टूबर, 2019)

मैंने jquery-rss से मुख्य तर्क को एक नई लाइब्रेरी में निकाला, जिसे वेनिला RSS कहा जाता है, जो कि API का उपयोग कर रही है और बिना किसी अतिरिक्त निर्भरता के काम कर सकती है:

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

मूल

पद:

आप jquery-rss का भी उपयोग कर सकते हैं , जो अच्छा टेम्प्लेटिंग के साथ आता है और उपयोग करने के लिए सुपर आसान है:

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

पैदावार (सितम्बर 18, 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>

कार्यशील उदाहरण के लिए http://jsfiddle.net/sdepold/ozq2dn9e/1/ देखें ।


यह ध्यान रखें कि jquery-rss Google फ़ीड API का उपयोग करता है जो फ़ीड को कैश करेगा, जिससे समस्या हो सकती है। आप इसे रद्दी url पैरामीटर जोड़कर ट्रिक कर सकते हैं: stackoverflow.com/questions/13401936/…
kukabuka

कृपया बिना उपयोग के दिनांक को प्रारूपित करने के लिए एक उदाहरण प्रदान करेंmoment.js
Purvesh Desai

निम्नलिखित स्निपेट gist.github.com/sdepold/d1e5e0e7a66fc77930fe की जाँच करें यह कुछ इस तरह उत्पन्न करेगा: "<कुछ सामग्री>, [@ 2015-11-18]"
sepepold

बस यह उल्लेख करना चाहता था कि jquery-rss Google फ़ीड API का उपयोग नहीं कर रहा है, लेकिन एक ड्रॉप-इन प्रतिस्थापन जिसे फीडर ( github.com/sdepold/feedrapp ) कहा जाता है और क्रमशः मूल API बंद होने के बावजूद ठीक काम करता है।
sdepold

15

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>

9

जब तक आपका RSS डेटा निजी न हो, Google AJAX फ़ीड API का उपयोग करें। यह निश्चित रूप से तेज़ है।

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


1
एक अच्छा विचार है, लेकिन जब आप एक फ़ायरवॉल के अंदर काम नहीं करते हैं जो कि संवाद बॉक्स का उपयोग करके प्रॉक्सी प्रमाणीकरण की आवश्यकता होती है।
thewinchester

Google फ़ीड को पदावनत किया गया है और किसी भी अधिक समर्थित नहीं है।
vikas etagi

8

UPDATE [ 4/25/2016 ] अब GitHub.jQSSS पर होस्ट किए गए अधिक विकल्पों और क्षमताओं के साथ बेहतर लिखित और पूरी तरह से समर्थित संस्करण

मैंने नाथन स्ट्रट्ज़ द्वारा चयनित उत्तर को देखा , हालांकि, jQuery प्लगइन पेज लिंक अभी भी नीचे है और उस साइट के लिए होम पेज लोड नहीं हुआ। मैंने कुछ अन्य समाधानों की कोशिश की और उनमें से अधिकांश को न केवल आउट-डेटेड पाया, बल्कि आसान भी ! इस प्रकार मैंने अपनी टोपी को वहीं फेंक दिया और अपना खुद का प्लगइन बना लिया, और यहाँ मृत लिंक के साथ, यह एक जवाब प्रस्तुत करने के लिए एक शानदार जगह की तरह लगता है। यदि आप 2012 में (जल्द ही बी 2013 के लिए) इस उत्तर की तलाश कर रहे हैं, तो आप यहाँ दिए गए लिंक और पुरानी सलाह की निराशा को देख सकते हैं। नीचे मेरे आधुनिक प्लगइन उदाहरण के लिए लिंक के साथ-साथ प्लगइन का कोड भी है! बस एक जेएस फाइल में कोड कॉपी करें और इसे किसी अन्य प्लगइन की तरह अपने हेडर में लिंक करें। का उपयोग ईज़ी है!

jsFiddle

प्लगइन कोड
2/9/2015 - consoleआदेश भेजने से पहले जांच करने के लिए लंबे समय तक अद्यतन किया गया! पुराने 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);

उपयोग

//  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 ('खोज शब्द यहां एक लिंक के बजाय', फ़ंक्शन (फ़ीड) {/ * काम करो * /}) // TODO: नीड फ़िक्सिंग

विकल्प

{
    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 से सहमत हूं , Google का उपयोग करना एक ठोस, पुन: प्रयोज्य तरीका है जो आपको भारी लाभ के साथ प्रदान करता है जो आपको XML के बजाय JSON वापस मिलता है। Google को प्रॉक्सी के रूप में उपयोग करने का एक अतिरिक्त लाभ यह है कि ऐसी सेवाएँ जो आपके डेटा तक आपकी सीधी पहुँच को अवरुद्ध कर सकती हैं, Google को रोकने की संभावना नहीं है। यहाँ स्की रिपोर्ट और शर्तों डेटा का उपयोग करके एक उदाहरण दिया गया है। इसमें सभी सामान्य वास्तविक विश्व अनुप्रयोग हैं: 1) थर्ड पार्टी RSS / XML 2) JSONP 3) स्ट्रिंग्स और स्ट्रिंग को ऐरे से साफ करना जब आप डेटा को उस तरह से प्राप्त नहीं कर सकते जिस तरह से आप इसे चाहते हैं) 4 लोड करने के लिए तत्वों को जोड़ें डोम। आशा है कि यह कुछ लोगों को मदद करता है!

<!-- 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
क्रॉस-डोमेन समस्याओं के कारण यह काम नहीं कर रहा है। आपको JSONP की आवश्यकता है।
गोमोफ्रिट्ज

1
इससे मेरा काम बनता है। क्या आपने इसका परीक्षण किया? बहुत यकीन है कि Google कॉलबैक पैरामीटर का उपयोग करके jsonp नहीं देता है ajax dataType।
डायलन वेलेड

निश्चित नहीं है कि नीचे क्या था। यह कोड अभी भी तीन साल बाद काम करता है। इसे सभी कंसोल में पेस्ट करें और आप इस पृष्ठ के पाद लेख में जोड़े गए वर्तमान (XML) स्की परिस्थितियों को देखेंगे।
डायलन वेलेड

4

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>

कृपया ध्यान दें कि यह केवल गैर-स्थानीय फ़ीड्स के साथ काम करता है, क्योंकि यह Google फ़ीड API का उपयोग करता है (Google फ़ीड xml को लोड करने में सक्षम होना चाहिए)।
CmdrTallen

2

मैं फ़ीड के लिए yql के साथ jquery का उपयोग कर रहा हूं। आप ट्विटर, आरएसएस, yql के साथ चर्चा पुनः प्राप्त कर सकते हैं। मैं http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/ से पढ़ता हूं । यह मेरे लिए बहुत उपयोगी है।


2

मैं आपको FeedEk का उपयोग करने की सलाह देता हूं । Google फ़ीड 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'
});

मुझे यकीन नहीं है कि आप वास्तव में एक वैकल्पिक एपीआई एंडपॉइंट को परिभाषित कर सकते हैं, लेकिन यदि आप कर सकते हैं, तो संभवतः फीडरप्प के साथ Google फ़ीड एपीआई को बदलने की संभावना होगी: github.com/sdepold/feedrapp (जो कि jquery के लिए भी बैकऑन है) (आजकल)
sdepold

यह पार्सिंग नहीं करता है। पार्सिंग करने के लिए यह योहैपिस का उपयोग करता है, फिर यह केवल सामग्री प्रदर्शित करता है।
डेविड एल।

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>

एक बुरा जवाब नहीं है, लेकिन दुर्भाग्य से आपने कोड को चिपकाने का सबसे बड़ा काम नहीं किया। ;-)
तक

0

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>

यह एक बढ़िया विकल्प है क्योंकि यह jquery पर निर्भर नहीं करता है!
पीट गार्डनर


0

JQuery-rss प्रोजेक्ट काफी हल्का है और यह किसी विशेष स्टाइलिंग को लागू नहीं करता है।

वाक्यविन्यास जितना सरल हो सकता है

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

Http://jsfiddle.net/jhfrench/AFHfn/ पर एक कार्यशील उदाहरण देखें


-1

jQuery फ़ीड एक अच्छा विकल्प है, इसमें एक अंतर्निहित टेम्प्लेटिंग सिस्टम है और Google फीड एपीआई का उपयोग करता है, इसलिए इसमें क्रॉस-डोमेन समर्थन है।


-1

Superfeedr में एक jquery प्लगइन है जो बहुत अच्छी तरह से करता है। आपके पास कोई क्रॉस ओरिजिन पॉलिसी जारी नहीं होगी और अपडेट को रीयल टाइम में प्रचारित किया जाएगा।


इस समाधान में कोर मुद्दे क्यों नहीं होंगे?
आकर्षित

-2

jFeed आसान है और आपके पास परीक्षण करने के लिए एक उदाहरण है । लेकिन यदि आप किसी अन्य सर्वर से फ़ीड पार्स कर रहे हैं, तो आपको फ़ीड सर्वर पर क्रॉस ओरिजिनल रिसोर्स शेयरिंग (कोर) की अनुमति देने की आवश्यकता होगी । आपको ब्राउज़र समर्थन की भी जांच करनी होगी ।

मैंने नमूना अपलोड किया था, लेकिन फिर भी मुझे किसी भी संस्करण में IE से समर्थन नहीं मिला जब मैंने उदाहरण में url को http प्रोटोकॉल के माध्यम से example.com/feed.rss जैसे कुछ में बदल दिया। कॉर्स को IE 8 और इसके बाद के संस्करण के लिए समर्थित होना चाहिए, लेकिन jFeed उदाहरण ने फ़ीड को प्रस्तुत नहीं किया।

Google की API: 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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.