bugl
bugl
HomeLearnPatternsSearch
HomeLearnPatternsSearch

Loading lesson path

Learn/JavaScript/Objects, Classes, and Advanced Patterns
JavaScript•Objects, Classes, and Advanced Patterns

XML Applications

This chapter demonstrates some HTML applications using

XML, HTTP, DOM, and JavaScript.

The XML Document Used

In this chapter we will use the XML file called "cd_catalog.xml".

Display XML Data in an HTML Table

Formula

This example loops through each < CD > element, and displays the values of the < ARTIST > and the
< TITLE > elements in an HTML table:

Example

<table id="demo"></table> <script>

function loadXMLDoc() {
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
const xmlDoc = xhttp.responseXML;
const cd = xmlDoc.getElementsByTagName("CD");
myFunction(cd);
}
xhttp.open("GET", "cd_catalog.xml");
xhttp.send();
}
function myFunction(cd) {
let table="<tr><th>Artist</th><th>Title</th></tr>";
for (let i = 0; i < cd.length; i++) {
table += "<tr><td>" +
cd[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue

+ "</td><td>" + cd[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +

"</td></tr>";
}
document.getElementById("demo").innerHTML = table;
}

</script> </body> </html> For more information about using JavaScript and the XML DOM, go to DOM Intro. Display the First CD in an HTML div Element This example uses a function to display the first CD element in an HTML element with id="showCD":

Example

const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
const xmlDoc = xhttp.responseXML;
const cd = xmlDoc.getElementsByTagName("CD");
myFunction(cd, 0);
}
xhttp.open("GET", "cd_catalog.xml");
xhttp.send();
function myFunction(cd, i) {
document.getElementById("showCD").innerHTML =
"Artist: " +
cd[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +

Formula

"< br > Title: " +

cd[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +

Formula

"< br > Year: " +
cd[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;
}

Navigate Between the CDs

To navigate between the CDs in the example above, create a next() and previous() function:

Example function next()

{

// display the next CD, unless you are on the last CD

if (i < len-1) {
i++;
displayCD(i);
}
}
function previous()
{

// display the previous CD, unless you are on the first CD

if (i > 0) {
i--;
displayCD(i);
}
}

Show Album Information When Clicking On a CD The last example shows how you can show album information when the user clicks on a CD:

Example function displayCD(i) {
document.getElementById("showCD").innerHTML =
"Artist: " +
cd[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +

Formula

"< br > Title: " +

cd[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +

Formula

"< br > Year: " +
cd[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;
}

Previous

AJAX Database Example

Next

AJAX Examples