JQuery সহ আরএসএস পার্স করুন


194

আমি আরএসএস ফিডগুলি পার্স করতে jQuery ব্যবহার করতে চাই। এটি কি বাক্সের বাইরে বেস jQuery লাইব্রেরি দিয়ে করা যেতে পারে বা আমার একটি প্লাগইন ব্যবহার করতে হবে?


1
আমি github.com/sdepold/jquery-rss এর জন্য যাব - এখনই এটি সেরা বিকল্প, একাধিক বিকল্প উপলব্ধ! :)
কামরাথ

গুগল থেকে যে কেউ ল্যান্ডিংয়ের জন্য আমাকে কোনও ডিভ্যান্টআর্ট থাম্বনেইল দর্শকের জন্য একই জিনিস তৈরি করতে হয়েছিল। দুর্দান্ত এবং সহজ এবং সহজেই প্রসারিত : adamjamesnaylor.com/2012/11/05/… । নোট করুন এটি গুগলের ফিড রিডার ব্যবহার করে তবে কেবল এটিকে JSON এ রূপান্তর করতে।
অ্যাডাম নায়লার

উত্তর:


208

সতর্কতামূলক

গুগল ফিড এপিআই আনুষ্ঠানিকভাবে হ্রাস পেয়েছে এবং আর কাজ করে না !


পুরো প্লাগইনের দরকার নেই। এটি আপনার আরএসএসকে কলব্যাক ফাংশনে জেএসওএন অবজেক্ট হিসাবে ফিরিয়ে দেবে:

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
জেফিড চেষ্টা করেছে এবং এটি কাজ করে না, এটি সূক্ষ্মভাবে কাজ করে এবং অতিরিক্ত লাইব্রেরির প্রয়োজন নেই।
diggersworld

15
সচেতন থাকুন ... গুগল এপিআই ব্যবহার করে, ফিডগুলি ক্যাশে করা হয় যাতে আপনি সর্বশেষতম এবং সর্বশ্রেষ্ঠ ফিডগুলি পাচ্ছেন না।
c0deNinja

3
এটা কোথায় রাখা হয়? আমি কিভাবে ক্যাশে সরিয়ে ফেলতে পারি?
জেগ বাগস

39
এটি একটি দুর্দান্ত উত্তর নয়। এটি তৃতীয় পক্ষের সংস্থা [গুগল] তাদের পরিষেবা বজায় রাখার উপর নির্ভরশীল। এটি মূল প্রশ্নের উত্তর দেয় না ("jQuery সহ পার্স আরএসএস") এবং পরিবর্তে গুগলকে বিজ্ঞাপন দেয়। গুগল যদি তাদের এজ্যাক্স এপিআইটি ড্রপ বা সংশোধন করে তবে কী হবে? আপনার ওয়েবসাইট বিরতি।
চার্লস গুডউইন

11
@ চার্লস গুডউইন গুগল সবেমাত্র এই এপিআই সরিয়ে দিয়েছে! developers.google.com/feed/?hl=en
এতে যান

185

JFeed ব্যবহার করুন - একটি jQuery আরএসএস / অ্যাটম প্লাগইন। দস্তাবেজ অনুসারে, এটি এতটা সহজ:

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

2
বাস্তব বিশ্বের ব্যবহারের কোন উদাহরণ? অর্থাত্ সতর্কতার চেয়ে পার্সিং এবং প্রদর্শন করা। বা এটি $ ("# ফলাফল") এর মতোই সহজ app অ্যাপেনড (ফিড.টাইটেল)
অ্যান্ডি ব্রুডটকুহল

3
দ্রষ্টব্য: ডাউনলোডটিতে সব ধরণের দুর্দান্ত উদাহরণ রয়েছে
অ্যান্ডি ব্রুডটকুহল

12
অনিরুধা, সম্ভবত আপনি 7-জিপ চেষ্টা করতে পারেন? এটি ফ্রি, ওপেন সোর্স এবং টার / জিজিপ সহ বিভিন্ন ধরণের ফাইল প্রকার খোলে।
নাথান স্ট্রুটজ

100
দয়া করে নোট করুন যে এই প্লাগইনের সর্বশেষতম সংস্করণটি গিথুবে উপলভ্য ।
অ্যালান এইচ।

3
jFeed আর সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হবে না বলে মনে হচ্ছে (নোটের শেষ পরিবর্তনটি 2 বছরের পুরানো, এবং অনেকগুলি উন্মুক্ত অনুরোধ অনুরোধ করা হবে বলে মনে হয়), এবং jQuery এর সাম্প্রতিক প্রকাশের সাথে কাজ করে না।
থিলো

159

আমাদের মধ্যে দেরিতে আলোচনায় আসার জন্য, 1.5 টি jQuery দিয়ে শুরু করে অন্তর্নির্মিত এক্সএমএল পার্সিং ক্ষমতা রয়েছে যা প্লাগিন বা তৃতীয় পক্ষের পরিষেবাগুলি ছাড়াই এটি করা বেশ সহজ করে তোলে। এটিতে একটি পার্সএক্সএমএল ফাংশন রয়েছে এবং get .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
এক্সএমএলএইচটিপি অনুরোধ ত্রুটি: অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স দ্বারা উত্স অনুমোদিত নয়
জ্যাকোকনর

12
@ জ্যাকোকনর, হ্যাঁ এই পদ্ধতির ক্ষতি। উত্স সার্ভারে অ্যাক্সেস-নিয়ন্ত্রণ-মঞ্জুরি-উত্স শিরোনাম সেট করার অ্যাক্সেস না থাকলে আপনি ক্রস-ডোমেন অনুরোধগুলি করতে পারবেন না। সার্ভার যদি জসনপ সমর্থন করে তবে তা আপনার সেরা বাজি। অন্যথায়, আপনি এক্সএমএল পুনরুদ্ধার করতে আপনার ডোমেনের মধ্যে একটি প্রক্সি স্ক্রিপ্ট ব্যবহার করতে পারেন এবং তারপরে বাইরের সার্ভারের পরিবর্তে সেই স্ক্রিপ্টটি কল করতে পারেন।
ডেভিড হ্যামন্ড

এটি কি কেবলমাত্র একমাত্র উত্তর যা বাহ্যিক প্লাগইন বা পরিষেবাগুলিতে নির্ভর করে না?
ব্লেজমোনজার

$this.find("link").text()সর্বদা কেন খালি স্ট্রিং '' ফেরত দেয়?
জেফ টিয়ান

@ জেফটিয়ান, আপনার এক্সএমএল না দেখে বলা শক্ত। সর্বাধিক সুস্পষ্ট কারণটি হ'ল <লিঙ্ক> উপাদানটি অনুপস্থিত বা খালি রয়েছে।
ডেভিড হ্যামন্ড

16

জেফিড আইই তে কাজ করে না।

জেডআরএসএসফিড ব্যবহার করুন । এটা 5 মিনিটের মধ্যে কাজ করে


2
জাজার.নেট / ডেভেলপার্স / জার্সফিডে উপলব্ধ এটি কীভাবে যায় তা দেখার চেষ্টা করার জন্য, আশাব্যঞ্জক দেখায়।
দ্য উইন্ডিচেস্টার

3
বিটিডাব্লু, জেডআরএসফিড অভ্যন্তরীণভাবে গুগল ফিড আরএসএস এপিআই ব্যবহার করে । সুতরাং যদি কেউ এইচটিএমএল লেআউট নিজেই করতে চান তবে কেবল তার পরিবর্তে সরাসরি দেখার পক্ষে আরও সহজ।
সিয়ানটিক

পাঁচ মিনিট বা তারও কম :)
কনস্টান্টা

দুর্দান্ত দুর্দান্ত ... কেবলমাত্র যদি তারা কলব্যাক ফাংশনে পুরো এইচটিএমএল এর চেয়ে ফিডের অবজেক্টগুলি সরবরাহ করছিল তবে দুর্দান্ত হবে ...
শাহিল

2
এফওয়াইআই যে কেউ এই প্লাগইনটি ব্যবহার করতে চাইছেন। বিকাশকারী নিম্নলিখিত পোস্ট করেছেন। "এই প্লাগইনটি বিযুক্ত হয়েছে গুগল ফিডস এপিআই পরিষেবা থেকে সরানোর কারণে, যা প্লাগইন জবাব দিয়েছে, এটি আর উপলব্ধ বা সমর্থিত হবে না।" সূত্র: জাজার ডটকম
ডেভেলপারস

16

আপডেট (15 অক্টোবর, 2019)

আমি jquery-rss থেকে ভেনিলা আরএসএস নামে একটি নতুন লাইব্রেরিতে মূল যুক্তিটি বের করেছিলাম যা ফেচ এপিআই ব্যবহার করছে এবং কোনও অতিরিক্ত নির্ভরতা ছাড়াই কাজ করতে পারে:

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 গুলি গুগল ফিড এপিআই ব্যবহার করে যা ফিডকে ক্যাশে করবে, যা কোনও সমস্যা উপস্থাপন করতে পারে। : আপনি একটি আবর্জনা URL মাপদণ্ড যদিও যোগ করে এটা রত পারেন stackoverflow.com/questions/13401936/...
kukabuka

অনুগ্রহ করে তারিখ বিন্যাসের জন্য উদাহরণ না দিয়েmoment.js
পূর্বদেশ দেশাই

নীচের স্নিপেট গিস্ট.github.com/sdepold/d1e5e0e7a66fc77930fe দেখুন এটি এর থেকে এমন কিছু উত্পন্ন করবে: "<কিছু বিষয়বস্তু>, [@ 2015-11-18]"
এসডিপল্ড

কেবল উল্লেখ করতে চেয়েছিলেন যে jquery-rss গুগল ফিড এপিআই ব্যবহার করছে না তবে ফিডার ( github.com/sdepold/feedrapp ) নামক একটি ড্রপ-ইন প্রতিস্থাপন এবং যথাক্রমে মূল API টি বন্ধ থাকা সত্ত্বেও সূক্ষ্মভাবে কাজ করে।
sdepold

15

জেফিড ব্যবহার করে

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

আপনার আরএসএস ডেটা ব্যক্তিগত না হলে Google AJAX ফিড API ব্যবহার করুন। অবশ্যই এটি দ্রুত।

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


1
একটি ভাল ধারণা, তবে আপনি যখন কোনও ফায়ারওয়ালের অভ্যন্তরে কাজ করেন না তখন ডায়ালগ বক্স ব্যবহার করে প্রক্সি প্রমাণীকরণের প্রয়োজন হয়।
দ্য উইন্ডিচেস্টার

গুগল ফিড হ্রাস করা হয় এবং আর সমর্থন করা হয় না।
বিকাস এতাগি

8

আপডেট [ 4/25/2016 ] এখন আরও ভাল লিখিত এবং পুরোপুরি সমর্থিত সংস্করণ GitHub.jQRSS এ হোস্ট করা আরও বিকল্প এবং ক্ষমতা সহ

আমি নাথান স্ট্রুটজ কর্তৃক নির্বাচিত উত্তরটি দেখেছি , তবে, jQuery প্লাগইন পৃষ্ঠার লিঙ্কটি এখনও নিচে রয়েছে এবং সেই সাইটের হোম পেজ লোড হওয়ার মতো মনে হচ্ছে না। আমি কয়েকটি অন্যান্য সমাধান চেষ্টা করেছি এবং সেগুলির বেশিরভাগই পেয়েছি, কেবল সেকেলে নয়, সহজ ! এইভাবে আমি আমার টুপিটি সেখানে ফেলে দিয়েছিলাম এবং আমার নিজস্ব প্লাগইন তৈরি করেছি, এবং এখানে মৃত লিঙ্কগুলির সাথে, উত্তরটি জমা দেওয়ার পক্ষে এটি দুর্দান্ত জায়গা বলে মনে হচ্ছে। আপনি যদি 2012 সালে এই উত্তরটি সন্ধান করছেন (শীঘ্রই বি 2013) আপনি মৃত লিঙ্কগুলি এবং পুরানো পরামর্শের হতাশা এখানে লক্ষ্য করে দেখতে পারেন did নীচে আমার আধুনিক প্লাগইন উদাহরণের সাথে সাথে কোডটি প্লাগইনে একটি লিঙ্ক দেওয়া আছে ! কোডটি কেবল একটি জেএস ফাইলে অনুলিপি করুন এবং এটিকে অন্য কোনও প্লাগইনের মতো আপনার শিরোনামে লিঙ্ক করুন। ব্যবহার অত্যন্ত ইজেড!

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 */ })

j .জিকিউআরএসএস ('লিঙ্কের পরিবর্তে এখানে শব্দগুলি অনুসন্ধান করুন', ফাংশন (ফিড) {/ * কাজ করুন * /}) // টোডো: ফিক্সিংয়ের প্রয়োজন

বিকল্প

{
    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

আমি @ অ্যান্ড্রুয়ের সাথে একমত , গুগল ব্যবহার করা এক্সএমএল এর পরিবর্তে আপনি জেএসএনকে ফিরে পাবেন এমন বিশাল সুবিধা নিয়ে এটি করার একটি শক্ত, পুনরায় ব্যবহারযোগ্য উপায়। প্রক্সি হিসাবে গুগল ব্যবহার করার একটি অতিরিক্ত সুবিধা হ'ল পরিষেবাগুলি যেগুলি তাদের ডেটাতে আপনার সরাসরি অ্যাক্সেসকে ব্লক করতে পারে সেগুলি Google কে থামানোর সম্ভাবনা কম। স্কি রিপোর্ট এবং শর্তাদি ডেটা ব্যবহার করে এখানে একটি উদাহরণ দেওয়া আছে। এটিতে প্রচলিত বাস্তব বিশ্বের সমস্ত অ্যাপ্লিকেশন রয়েছে: 1) তৃতীয় পক্ষ আরএসএস / এক্সএমএল 2) জেএসএনপি 3) যখন আপনি তথ্যটি চান ঠিক তেমনভাবে পাচ্ছেন না তখন স্ট্রিংগুলি এবং স্ট্রিংগুলি অ্যারেতে পরিষ্কার করা 4) লোডে উপাদান যুক্ত করুন করে DOM। এই কিছু মানুষের সাহায্য আশা করি!

<!-- 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
ক্রস-ডোমেন সমস্যার কারণে এটি কাজ করছে না। আপনার জেএসএনপি দরকার।
getofritz

1
এটা আমার জন্য কাজ করে. আপনি এটি পরীক্ষা করেছেন? খুব নিশ্চিত যে গুগল আজব্যাক্স ডেটা টাইপ নয় কলব্যাক প্যারামিটার ব্যবহার করে জসনপ ফিরিয়েছে।
ডিলান ভ্যালাদে

ডাউনভোটটি কী ছিল তা নিশ্চিত নয়। এই কোডটি এখনও তিন বছর পরে কাজ করে। এটি সমস্ত কনসোলে আটকে দিন এবং আপনি বর্তমান (এক্সএমএল) স্কি শর্তাদি এই পৃষ্ঠার পাদলেখগুলিতে যুক্ত দেখতে পাবেন।
ডিলান ভালাদে

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>

লক্ষ্য করুন নোট এটি কেবল অ-স্থানীয় ফিডগুলির সাথে কাজ করে, যেহেতু এটি গুগল ফিড এপিআই ব্যবহার করে (গুগল অবশ্যই ফিড এক্সএমএল লোড করতে সক্ষম হবে)।
CmdrTallen

2

আমি ফিডের জন্য yql সহ jquery ব্যবহার করছি। আপনি টুইটার, আরএসএস, yql এর সাথে buzz পুনরুদ্ধার করতে পারেন। আমি http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/ থেকে পড়েছি । এটা আমার জন্য খুব দরকারী।


2

আমি আপনাকে ফিডেক ব্যবহার করার পরামর্শ দিচ্ছি । গুগল ফিড এপিআই আনুষ্ঠানিকভাবে হ্রাস পাওয়ার পরে বেশিরভাগ প্লাগইন কাজ করে না। তবে ফিডেক এখনও কাজ করছে। এটি ব্যবহার করা খুব সহজ এবং কাস্টমাইজ করার জন্য অনেকগুলি বিকল্প রয়েছে।

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

আমি নিশ্চিত না আপনি যদি আসলে একটি বিকল্প এপিআই শেষ পয়েন্টটি সংজ্ঞায়িত করতে পারেন তবে আপনি যদি তা করতে পারেন তবে গুগল ফিড এপিকে ফিডর্যাপের সাথে প্রতিস্থাপনের সম্ভাবনা থাকতে পারে: github.com/sdepold/feedrapp (যা jquery এর পিছনের অংশও ) -আর আজকাল)
6

এটি পার্সিং করে না। এটি পার্সিং করতে ইয়াহুয়াপিস ব্যবহার করে, তবে এটি কেবল সামগ্রীটি প্রদর্শন করে।
ডেভিড এল।

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

গুগল অজ্যাক্স এপিআই ব্যবহার করুন, গুগল দ্বারা ক্যাশেড এবং যে কোনও আউটপুট ফর্ম্যাট আপনি চান।

কোড নমুনা; 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 উপর নির্ভর করে না!
পিট গার্ডনার



-1

jQuery ফিডস একটি দুর্দান্ত বিকল্প, এটি একটি বিল্ট-ইন টেম্প্লেটিং সিস্টেম রয়েছে এবং এটি Google ফিড এপিআই ব্যবহার করে, সুতরাং এতে ক্রস-ডোমেন সমর্থন রয়েছে।


-1

সুপারফিডারের একটি জেকারি প্লাগইন রয়েছে যা এটি খুব ভাল করে। আপনার কোনও ক্রস অরিজিন নীতি সমস্যা নেই এবং আপডেটগুলি রিয়েলটাইমে প্রচারিত হবে।


কেন এই সমাধানে সিওআরএস সমস্যা থাকবে না?
ড্রয় করুন

-2

জেফিড সহজ এবং আপনার পরীক্ষা করার জন্য উদাহরণ রয়েছে example তবে আপনি যদি অন্য সার্ভার থেকে কোনও ফিড পার্স করছেন, আপনাকে ফিডের সার্ভারে ক্রস অরিজিন রিসোর্স ভাগ করে নেওয়ার (সিওআরএস) অনুমতি দেওয়া দরকার । আপনার ব্রাউজার সমর্থনও পরীক্ষা করতে হবে ।

আমি নমুনাটি আপলোড করেছি তবে আমি উদাহরণটিতে url পরিবর্তন করে যখন HTTP প্রোটোকলের মাধ্যমে উদাহরণ.com/feed.rss এর মতো কিছুতে পরিবর্তন করেছি তখনও কোনও সংস্করণে IE এর সমর্থন পাইনি support আইও 8 এবং ততোধিকের জন্য সিওআরএসকে সমর্থন করা উচিত তবে জেফিড উদাহরণটি ফিডটি সরবরাহ করে নি।

আপনার সেরা বেট হ'ল গুগলের এপিআই:
https://developers.google.com/feed/v1/devguide

দেখুন:
https://github.com/jfhovinne/jFeed
http://en.wikedia.org/wiki/Cross-origin_resource_sharing
http://en.wikedia.org/wiki/Same_origin_policy
http://caniuse.com/cors

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.