XML Anwendungen

Dieses Kapitel zeigt die Verwendung von XML, HTTP, DOM und JavaScript in einer HTML-Anwendung.

verwendete XML-Dokument

In diesem Kapitel verwenden wir den Namen "music_list.xmldes XML-Dokuments "

XML-Daten in einer HTML-Tabelle anzeigen

Dieses Beispiel durchläuft jeden <TRACK>-Element und zeigt die Werte der <ARTIST>- und <TITLE>-Elemente in einer HTML-Tabelle an:

Beispiel

<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>

Probieren Sie es selbst aus

Für mehr Informationen zur Verwendung von JavaScript und XML DOM besuchen Sie DOM-Übersicht.

Zeige das erste Lied im HTML-div-Element an

In diesem Beispiel wird eine Funktion verwendet, um das erste Lied im HTML-Element mit der id="displayMUSIC" anzuzeigen:

Beispiel

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>Künstler: " +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Album: " +
  x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Land: " +
  x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Unternehmen: " +
  x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Jahr: " + 
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" +
  "</ul>";
}

Probieren Sie es selbst aus

Navigieren zwischen Titeln

Um zwischen den Titeln in dem obigen Beispiel zu navigieren, fügen Sie die Funktionen next() und previous() hinzu:

Beispiel

function next() {
  // Zeige das nächste Lied, es sei denn, man ist bereits beim letzten
   if (i < x.length-1) {
    i++;
    displayMUSIC(i);
  }
}
function previous() {
  // Zeige das vorherige Lied, es sei denn, man ist bereits beim ersten
   if (i > 0) {
  i--;
  displayMUSIC(i);
  }
} 

Probieren Sie es selbst aus

Albuminformationen beim Klicken auf ein Lied anzeigen

Dieser letzte Beispiel zeigt, wie man die Informationen eines Albums anzeigt, wenn der Benutzer auf ein Lied klickt:

Beispiel

function displayMUSIC(i) {
  document.getElementById("showMUSIC").innerHTML =
  "<ul>" + 
  "<li>曲目:" +
  x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Künstler: " +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Album: " +
  x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Land: " +
  x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Unternehmen: " +
  x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" +
  "<li>Jahr: " + 
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" +
  "</ul>";
}

Probieren Sie es selbst aus