AJAX XML Example

یکی از روش‌های کلاسیک AJAX، دریافت داده‌ها به صورت XML از سرور و پردازش آن در جاوااسکریپت است.
این روش هنوز در برخی پروژه‌ها استفاده می‌شود، هرچند JSON رایج‌تر است.

🔹 1. ساخت فایل XML نمونه

فرض کنید یک فایل با نام data.xml داریم:

<?xml version="1.0" encoding="UTF-8"?> <users> <user> <name>Ali</name> <age>25</age> </user> <user> <name>Reza</name> <age>30</age> </user> </users>

🔹 2. دریافت XML با AJAX

let xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { let xmlDoc = this.responseXML; // دریافت XML let users = xmlDoc.getElementsByTagName("user"); for (let i = 0; i < users.length; i++) { let name = users[i].getElementsByTagName("name")[0].childNodes[0].nodeValue; let age = users[i].getElementsByTagName("age")[0].childNodes[0].nodeValue; console.log(`Name: ${name}, Age: ${age}`); } } }; xhttp.open("GET", "data.xml", true); xhttp.send();

📌 نکته: برای دریافت XML، باید از responseXML استفاده کنیم.

🔹 3. توضیح کد

  • responseXML → پاسخ سرور به صورت یک سند XML

  • ()getElementsByTagName → برای دسترسی به تگ‌های XML

  • childNodes[0].nodeValue → استخراج مقدار هر تگ

🔹 4. نمایش داده‌ها در صفحه

<div id="users"></div> <script> let xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { let xmlDoc = this.responseXML; let users = xmlDoc.getElementsByTagName("user"); let output = ""; for (let i = 0; i < users.length; i++) { let name = users[i].getElementsByTagName("name")[0].childNodes[0].nodeValue; let age = users[i].getElementsByTagName("age")[0].childNodes[0].nodeValue; output += `<p>Name: ${name}, Age: ${age}</p>`; } document.getElementById("users").innerHTML = output; } }; xhttp.open("GET", "data.xml", true); xhttp.send(); </script>

📌 داده‌ها روی صفحه نمایش داده می‌شوند بدون رفرش کامل صفحه.

🔹 5. نکات مهم

  • XML کمتر از JSON استفاده می‌شود، اما هنوز در پروژه‌های خاص کاربرد دارد.

  • همیشه readyState و status را چک کنید.

  • دسترسی به داده‌ها در XML کمی پیچیده‌تر از JSON است.

✅ خلاصه

  • AJAX می‌تواند XML دریافت کند با استفاده از responseXML

  • داده‌ها با getElementsByTagName و childNodes[0].nodeValue پردازش می‌شوند

  • مناسب پروژه‌هایی که سرور داده‌ها را به صورت XML ارسال می‌کند

  • JSON جایگزین ساده‌تر و محبوب‌تری برای داده‌های AJAX است