আমার আরএসএস ফিড (এক্সএমএল সংস্করণ 2.0) পার্স করা এবং পার্সেড বিশদটি একটি HTML পৃষ্ঠায় প্রদর্শন করা দরকার display
আমার আরএসএস ফিড (এক্সএমএল সংস্করণ 2.0) পার্স করা এবং পার্সেড বিশদটি একটি HTML পৃষ্ঠায় প্রদর্শন করা দরকার display
উত্তর:
(সত্যিই সেটিকে সুপারিশ করবেন না, অন্যান্য বিকল্পগুলি দেখুন))
jQuery.getFeed({
url : FEED_URL,
success : function (feed) {
console.log(feed.title);
// do more stuff here
}
});
$.get(FEED_URL, function (data) {
$(data).find("entry").each(function () { // or "item" or whatever suits your feed
var el = $(this);
console.log("------------------------");
console.log("title : " + el.find("title").text());
console.log("author : " + el.find("author").text());
console.log("description: " + el.find("description").text());
});
});
$.ajax({
url : document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(FEED_URL),
dataType : 'json',
success : function (data) {
if (data.responseData.feed && data.responseData.feed.entries) {
$.each(data.responseData.feed.entries, function (i, e) {
console.log("------------------------");
console.log("title : " + e.title);
console.log("author : " + e.author);
console.log("description: " + e.description);
});
}
}
});
তবে এর অর্থ আপনি অনলাইনে এবং অ্যাক্সেসযোগ্য being
একবার আপনি সফলভাবে তথ্য আপনি ফীড থেকে প্রয়োজন নিষ্কাশিত করেছি, আপনার তৈরী করতে পারে DocumentFragment
s এর সাথে ( document.createDocumentFragment()
সঙ্গে তৈরি উপাদান (ধারণকারী document.createElement()
) আপনার তথ্য প্রদর্শন উদ্বুদ্ধ করতে চাইবেন।
আপনি পৃষ্ঠাটিতে যে ধারক উপাদানটি চান তা নির্বাচন করুন এবং এতে আপনার নথির টুকরো যুক্ত করুন এবং এর সামগ্রীর সম্পূর্ণরূপে প্রতিস্থাপন করতে কেবল অভ্যন্তরীণ এইচটিএমএল ব্যবহার করুন।
কিছুটা এইরকম:
$('#rss-viewer').append(aDocumentFragmentEntry);
বা:
$('#rss-viewer')[0].innerHTML = aDocumentFragmentOfAllEntries.innerHTML;
এই লেখার মত যা এই প্রশ্নের ফিড ব্যবহার করে :
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:re="http://purl.org/atompub/rank/1.0">
<title type="text">How to parse a RSS feed using javascript? - Stack Overflow</title>
<link rel="self" href="https://stackoverflow.com/feeds/question/10943544" type="application/atom+xml" />
<link rel="hub" href="http://pubsubhubbub.appspot.com/" />
<link rel="alternate" href="https://stackoverflow.com/q/10943544" type="text/html" />
<subtitle>most recent 30 from stackoverflow.com</subtitle>
<updated>2012-06-08T06:36:47Z</updated>
<id>https://stackoverflow.com/feeds/question/10943544</id>
<creativeCommons:license>http://www.creativecommons.org/licenses/by-sa/3.0/rdf</creativeCommons:license>
<entry>
<id>https://stackoverflow.com/q/10943544</id>
<re:rank scheme="http://stackoverflow.com">2</re:rank>
<title type="text">How to parse a RSS feed using javascript?</title>
<category scheme="https://stackoverflow.com/feeds/question/10943544/tags" term="javascript"/><category scheme="https://stackoverflow.com/feeds/question/10943544/tags" term="html5"/><category scheme="https://stackoverflow.com/feeds/question/10943544/tags" term="jquery-mobile"/>
<author>
<name>Thiru</name>
<uri>https://stackoverflow.com/users/1126255</uri>
</author>
<link rel="alternate" href="/programming/10943544/how-to-parse-a-rss-feed-using-javascript" />
<published>2012-06-08T05:34:16Z</published>
<updated>2012-06-08T06:35:22Z</updated>
<summary type="html">
<p>I need to parse the RSS-Feed(XML version2.0) using XML and I want to display the parsed detail in HTML page, I tried in many ways. But its not working. My system is running under proxy, since I am new to this field, I don't know whether it is possible or not. If any one knows please help me on this. Thanks in advance.</p>
</summary>
</entry>
<entry>
<id>https://stackoverflow.com/questions/10943544/-/10943610#10943610</id>
<re:rank scheme="http://stackoverflow.com">1</re:rank>
<title type="text">Answer by haylem for How to parse a RSS feed using javascript?</title>
<author>
<name>haylem</name>
<uri>https://stackoverflow.com/users/453590</uri>
</author>
<link rel="alternate" href="/programming/10943544/how-to-parse-a-rss-feed-using-javascript/10943610#10943610" />
<published>2012-06-08T05:43:24Z</published>
<updated>2012-06-08T06:35:22Z</updated>
<summary type="html"><h1>Parsing the Feed</h1>
<h3>With jQuery's jFeed</h3>
<p>Try this, with the <a href="http://plugins.jquery.com/project/jFeed" rel="nofollow">jFeed</a> <a href="http://www.jquery.com/" rel="nofollow">jQuery</a> plug-in</p>
<pre><code>jQuery.getFeed({
url : FEED_URL,
success : function (feed) {
console.log(feed.title);
// do more stuff here
}
});
</code></pre>
<h3>With jQuery's Built-in XML Support</h3>
<pre><code>$.get(FEED_URL, function (data) {
$(data).find("entry").each(function () { // or "item" or whatever suits your feed
var el = $(this);
console.log("------------------------");
console.log("title : " + el.find("title").text());
console.log("author : " + el.find("author").text());
console.log("description: " + el.find("description").text());
});
});
</code></pre>
<h3>With jQuery and the Google AJAX APIs</h3>
<p>Otherwise, <a href="https://developers.google.com/feed/" rel="nofollow">Google's AJAX Feed API</a> allows you to get the feed as a JSON object:</p>
<pre><code>$.ajax({
url : document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&amp;num=10&amp;callback=?&amp;q=' + encodeURIComponent(FEED_URL),
dataType : 'json',
success : function (data) {
if (data.responseData.feed &amp;&amp; data.responseData.feed.entries) {
$.each(data.responseData.feed.entries, function (i, e) {
console.log("------------------------");
console.log("title : " + e.title);
console.log("author : " + e.author);
console.log("description: " + e.description);
});
}
}
});
</code></pre>
<p>But that means you're relient on them being online and reachable.</p>
<hr>
<h1>Building Content</h1>
<p>Once you've successfully extracted the information you need from the feed, you need to create document fragments containing the elements you'll want to inject to display your data.</p>
<hr>
<h1>Injecting the content</h1>
<p>Select the container element that you want on the page and append your document fragments to it, and simply use innerHTML to replace its content entirely.</p>
</summary>
</entry></feed>
invoking:
$.get('https://stackoverflow.com/feeds/question/10943544', function (data) {
$(data).find("entry").each(function () { // or "item" or whatever suits your feed
var el = $(this);
console.log("------------------------");
console.log("title : " + el.find("title").text());
console.log("author : " + el.find("author").text());
console.log("description: " + el.find("description").text());
});
});
প্রিন্ট আউট:
------------------------
title : How to parse a RSS feed using javascript?
author :
Thiru
https://stackoverflow.com/users/1126255
description:
------------------------
title : Answer by haylem for How to parse a RSS feed using javascript?
author :
haylem
https://stackoverflow.com/users/453590
description:
invoking:
$.ajax({
url : document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent('https://stackoverflow.com/feeds/question/10943544'),
dataType : 'json',
success : function (data) {
if (data.responseData.feed && data.responseData.feed.entries) {
$.each(data.responseData.feed.entries, function (i, e) {
console.log("------------------------");
console.log("title : " + e.title);
console.log("author : " + e.author);
console.log("description: " + e.description);
});
}
}
});
প্রিন্ট আউট:
------------------------
title : How to parse a RSS feed using javascript?
author : Thiru
description: undefined
------------------------
title : Answer by haylem for How to parse a RSS feed using javascript?
author : haylem
description: undefined
আরেকটি অবচিত (থেকে @daylight ধন্যবাদ) বিকল্প, এবং আমার জন্য সবচেয়ে সহজ পদ্ধিতি হল (এই কি আমি ব্যবহার করছি হয় SpokenToday.info ):
গুগল ফিড এপিআই jQuery ব্যবহার ছাড়া এবং শুধুমাত্র 2 পদক্ষেপ সঙ্গে:
পাঠাগারটি আমদানি করুন:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("feeds", "1");</script>
ফিডগুলি অনুসন্ধান করুন / লোড করুন ( ডকুমেন্টেশন ):
var feed = new google.feeds.Feed('http://www.google.com/trends/hottrends/atom/feed?pn=p1');
feed.load(function (data) {
// Parse data depending on the specified response format, default is JSON.
console.dir(data);
});
ডেটা পার্স করতে, প্রতিক্রিয়া ফর্ম্যাট সম্পর্কে ডকুমেন্টেশন চেক করুন ।
document.getElementById('image').style.backgroundImage = "url('" + src + "')";
আপনি যদি আপনার আরএসএস উইজেটের জন্য গুগল ফিড এপিআই-এর একটি সহজ এবং নিখরচায় বিকল্পের সন্ধান করছেন তবে আরএসএস ২ জসন ডট কম তার পক্ষে উপযুক্ত সমাধান হতে পারে।
নীচের এপিআই ডকুমেন্টেশন থেকে এটি কীভাবে নমুনা কোডে কাজ করে তা দেখার চেষ্টা করতে পারেন :
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed("https://news.ycombinator.com/rss");
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
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);
}
}
});
}
google.setOnLoadCallback(initialize);
<html>
<head>
<script src="https://rss2json.com/gfapi.js"></script>
</head>
<body>
<p><b>Result from the API:</b></p>
<div id="feed"></div>
</body>
</html>
অন্য যে কেউ এটি পড়ছে (2019 এর পরে) দুর্ভাগ্যক্রমে বেশিরভাগ জেএস আরএস রিডিং বাস্তবায়ন এখন কাজ করে না। প্রথমত গুগল এপিআই বন্ধ হয়ে গেছে সুতরাং এটি আর বিকল্প নয় এবং কর্ন নিরাপত্তা নীতির কারণে আপনি এখন আরএসএস ফিড ক্রস-ডোমেনগুলির জন্য অনুরোধ করতে পারবেন না।
Https://www.raymondcamden.com/2015/12/08/parsing-rss-feeds-in-javascript-options (2015) এ উদাহরণ ব্যবহার করে আমি নিম্নলিখিতটি পেয়েছি:
Access to XMLHttpRequest at 'https://feeds.feedburner.com/raymondcamdensblog?format=xml' from origin 'MYSITE' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
এটি সঠিক এবং শেষ ওয়েবসাইটটি সুরক্ষা সতর্কতা তবে এখন এর অর্থ এই যে উপরে বর্ণিত উত্তরগুলি কাজ করার সম্ভাবনা কম।
আমার কাজটি সম্ভবত পিএইচপি এর মাধ্যমে আরএসএস ফিডকে বিশ্লেষণ করা এবং জাভাস্ক্রিপ্টকে আমার শেষ পিএইচপি অ্যাক্সেস করার পরিবর্তে শেষের গন্তব্য ফিডটি নিজেই অ্যাক্সেস করার চেষ্টা করবে।
আপনি যদি একটি সরল জাভাস্ক্রিপ্ট এপিআই ব্যবহার করতে চান তবে https://github.com/hongkiat/js-rss-reader/ এ একটি ভাল উদাহরণ রয়েছে
Https://www.hongkiat.com/blog/rss-reader-in-javascript/ এ সম্পূর্ণ বিবরণ
এটি fetch
এমন এক বৈশ্বিক পদ্ধতি হিসাবে পদ্ধতিটি ব্যবহার করে যা অবিচ্ছিন্নভাবে একটি সংস্থান গ্রহণ করে। নীচে কোডের একটি স্ন্যাপ দেওয়া হয়েছে:
fetch(websiteUrl).then((res) => {
res.text().then((htmlTxt) => {
var domParser = new DOMParser()
let doc = domParser.parseFromString(htmlTxt, 'text/html')
var feedUrl = doc.querySelector('link[type="application/rss+xml"]').href
})
}).catch(() => console.error('Error in fetching the website'))
আপনি jquery- RSS বা ভ্যানিলা আরএসএস ব্যবহার করতে পারেন , যা দুর্দান্ত টেম্প্লেটিং সহ আসে এবং এটি ব্যবহার করা অত্যন্ত সহজ:
// Example for jquery.rss
$("#your-div").rss("https://stackoverflow.com/feeds/question/10943544", {
limit: 3,
layoutTemplate: '<ul class="inline">{entries}</ul>',
entryTemplate: '<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>'
})
// Example for Vanilla RSS
const RSS = require('vanilla-rss');
const rss = new RSS(
document.querySelector("#your-div"),
"https://stackoverflow.com/feeds/question/10943544",
{
// options go here
}
);
rss.render().then(() => {
console.log('Everything is loaded and rendered');
});
কার্যকারী উদাহরণের জন্য http://jsfiddle.net/sdepold/ozq2dn9e/1/ দেখুন ।
এটির জন্য এখনই একটি ভাল সমাধান সন্ধান করার চেষ্টা করছি, আমি ফিডেক jQuery আরএসএস / এটিএম ফিড প্লাগিনের উপরে ঘটলাম যা jQuery ফিড এপিআইয়ের মাধ্যমে আরএসএস এবং অ্যাটম ফিডগুলি বিশ্লেষণ এবং প্রদর্শন করার দুর্দান্ত কাজ করে । বেসিক এক্সএমএল-ভিত্তিক আরএসএস ফিডের জন্য, আমি এটি দেখতে পেয়েছি যে এটি একটি কবজির মতো কাজ করে এবং এটি স্থানীয়ভাবে চালানোর জন্য কোনও সার্ভার-সাইড স্ক্রিপ্ট বা অন্যান্য সিওআরএস কাজের প্রয়োজন নেই ounds
আমি অনেক বিভ্রান্তিমূলক নিবন্ধ এবং জবাব দেখে এতটাই হতাশ হয়ে পড়েছিলাম যে আমি আমার নিজস্ব আরএসএস পাঠক লিখেছি: https://gouessej.wordpress.com/2020/06/28/comment-creer-un-lecteur-rss-en-javascript-how- টু-তৈরি-এ-আরএসএস-রিডার-ইন-জাভাস্ক্রিপ্ট /
আপনি আরএসএস ফাইলগুলি আনার জন্য আজেএক্স অনুরোধগুলি ব্যবহার করতে পারেন তবে আপনি যদি কোনও সিওআরএস প্রক্সি ব্যবহার করেন কেবল তখনই এটি কার্যকর হবে। আপনাকে আরও দৃ rob় সমাধান দেওয়ার জন্য আমি আমার নিজস্ব সিওআরএস প্রক্সি লেখার চেষ্টা করব। এর মধ্যে, এটি কাজ করে, আমি এটি ডেবিয়ান লিনাক্সের অধীনে আমার সার্ভারে স্থাপন করেছি।
আমার সমাধানটি জিকিউরি ব্যবহার করে না, আমি কেবল তৃতীয় পক্ষের লাইব্রেরি ছাড়া কেবল সরল জাভাস্ক্রিপ্ট স্ট্যান্ডার্ড এপিআই ব্যবহার করি এবং এটি মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার 11 এর সাথেও কাজ করার কথা।