AJAX – XML ফাইল রিড ও পার্স করার পূর্ণাঙ্গ বাংলা টিউটোরিয়াল
AJAX দিয়ে আপনি শুধু টেক্সট বা JSON নয়, বরং XML ফাইল থেকেও ডেটা লোড করে নিতে পারেন। XML একটি স্ট্রাকচারড ডেটা ফরম্যাট যা AJAX এর responseXML প্রপার্টি ব্যবহার করে সহজেই পড়া যায়।
এই টিউটোরিয়ালে আমরা দেখব:
- XML ফাইল তৈরি
- AJAX দিয়ে XML ফাইল রিকুয়েস্ট
- responseXML দিয়ে ডেটা রিড
- HTML এ পার্স করা ডেটা দেখানো
️ Step 1: একটি XML ফাইল তৈরি করুন
নিচে একটি books.xml ফাইলের নমুনা:
<?xml version="1.0"?>
<library>
<book>
<title>JavaScript Guide</title>
<author>Hasan Ahmed</author>
</book>
<book>
<title>Learning AJAX</title>
<author>Sadia Rahman</author>
</book>
</library>
ব্যাখ্যা: এই XML ফাইলে দুটি <book> নোড আছে। প্রতিটির মধ্যে <title> এবং <author> আছে। আমরা AJAX দিয়ে এই ফাইলটি পড়ব।
Step 2: AJAX দিয়ে XML ফাইল রিড করুন
এবার HTML ও JavaScript কোড লিখি:
<button onclick="loadXML()">XML ডেটা লোড করুন</button>
<div id="output"></div>
<script>
function loadXML() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "books.xml", true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var xmlDoc = xhr.responseXML;
var books = xmlDoc.getElementsByTagName("book");
var output = "<table style='width:100%; border-collapse: collapse;'>";
output += "<tr style='background:#0073aa; color:#fff;'><th style='padding:8px;border:1px solid #ccc;'>Title</th><th style='padding:8px;border:1px solid #ccc;'>Author</th></tr>";
for (var i = 0; i < books.length; i++) {
var title = books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var author = books[i].getElementsByTagName("author")[0].childNodes[0].nodeValue;
output += "<tr><td style='padding:8px;border:1px solid #ccc;'>" + title + "</td><td style='padding:8px;border:1px solid #ccc;'>" + author + "</td></tr>";
}
output += "</table>";
document.getElementById("output").innerHTML = output;
}
};
xhr.send();
}
</script>
ব্যাখ্যা (বাংলায়):
xhr.responseXMLXML ডেটা রিটার্ন করেDocumentফরম্যাটে।getElementsByTagName()দিয়ে নির্দিষ্ট ট্যাগের ভ্যালু নেওয়া হয়।- আমরা XML থেকে
titleওauthorনাম বের করে HTML টেবিলে দেখাচ্ছি। - AJAX call সফল হলে (status 200 এবং readyState 4), তখন DOM থেকে ডেটা নিয়ে HTML-এ বসানো হয়।
অতিরিক্ত টিপস:
- XML ফাইলটি সার্ভার থেকে লোড করতে হলে সেটি সঠিকভাবে ওয়েব সার্ভারে থাকতে হবে (localhost / live)।
- responseText ব্যবহার করলে XML string হিসেবে পাওয়া যায়, কিন্তু
responseXMLদিয়ে আমরা সরাসরি নোড এক্সেস করতে পারি। - এই কৌশলটি API থেকে XML ডেটা পাওয়ার সময় খুব কার্যকরী।