XML โปรแกรม

บทนี้แสดงการใช้ XML, HTTP, DOM และ JavaScript ในโปรแกรม HTML

XML ที่ใช้

ในบทนี้เราจะใช้ XML ที่มีชื่อว่า "music_list.xml" ของ XML。

แสดงข้อมูล XML ในตาราง HTML

ตัวอย่างนี้เลือกและแสดงค่าของประกาย <TRACK> ในตาราง HTML ของ <ARTIST> และ <TITLE> ดังนี้:

ตัวอย่าง

<html>
<body>
<table id="demo"></table>
<script>
function loadXMLDoc() {
   var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange =  function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this);
     }
  };
  xmlhttp.open("GET", "music_list.xml", true);
   xmlhttp.send();
}
function myFunction(xml) {
  var i;
   var xmlDoc = xml.responseXML;
  var table="<tr><th>นักแสดง</th><th>เพลง</th></tr>";
   var x = xmlDoc.getElementsByTagName("TRACK");
  for (i = 0; i <x.length;  i++) { 
    table += "<tr><td>" +
    x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue  +
    "</td><td>" +
    x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue  +
    "</td></tr>";
  }
   document.getElementById("demo").innerHTML = table;
}
</script>
</body>
</html>

ทดสอบด้วยตัวเอง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ JavaScript และ XML DOM โปรดเข้าชม: แนะนำระบบ DOM

แสดงเพลงแรกในองค์ประกอบ HTML div

ตัวอย่างนี้ใช้ฟังก์ชันเพื่อแสดงเพลงแรกในองค์ประกอบ HTML ที่มี id="displayMUSIC":

ตัวอย่าง

displayMUSIC(0);
function displayMUSIC(i) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this, i);
    }
  };
  xmlhttp.open("GET", "music_list.xml", true);
  xmlhttp.send();
}
function myFunction(xml, i) {
  var xmlDoc = xml.responseXML; 
  x = xmlDoc.getElementsByTagName("TRACK");
  document.getElementById("showMUSIC").innerHTML =
  "<ul>" 
  "<li>เพลง:"
  x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>"
  "<li>ศิลปิน:" +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" +
  "<li>อัลบั้ม:" +
  x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" +
  "<li>ประเทศ:" +
  x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>บริษัท:" +
  x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>ปี:" + 
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" +
  "</ul>";
}

ทดสอบด้วยตัวเอง

เลื่อนไปยังเพลงต่อไป

เพื่อเลื่อนไปยังเพลงต่อไปในตัวอย่างดังกล่าว โปรดเพิ่มฟังก์ชัน next() และ previous():

ตัวอย่าง

function next() {
  // แสดงเพลงต่อไป หากยังไม่ได้ถึงเพลงสุดท้าย
   if (i < x.length-1) {
    i++;
    displayMUSIC(i);
  }
}
function previous() {
  // แสดงเพลงก่อนหน้านี้ หากยังไม่ได้ถึงเพลงแรก
   if (i > 0) {
  i--;
  displayMUSIC(i);
  }
} 

ทดสอบด้วยตัวเอง

แสดงข้อมูลอัลบั้มเมื่อคลิกเพลง

ตัวอย่างนี้แสดงวิธีการแสดงข้อมูลอัลบั้มเมื่อผู้ใช้คลิกเพลงหนึ่ง:

ตัวอย่าง

function displayMUSIC(i) {
  document.getElementById("showMUSIC").innerHTML =
  "<ul>" 
  "<li>เพลง:"
  x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>"
  "<li>ศิลปิน:" +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" +
  "<li>อัลบั้ม:" +
  x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" +
  "<li>ประเทศ:" +
  x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>บริษัท:" +
  x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>ปี:" + 
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" +
  "</ul>";
}

ทดสอบด้วยตัวเอง