Code:
<script language="JavaScript">
function printArtists(xmlDoc) {
var x = xmlDoc.getElementsByTagName("Artist");
var writtenString = '';
var placetooutput = document.getElementById('writeroot');
for(var i=0; i < x.length; i++) {
if (x[i].id == "1") {
writtenString += '<table width="100%" border="0">';
writtenString += '<tr>';
writtenString += '<td colspan="2">' + x[i].getElementsByTagName("Genre")[0].childNodes[0].nodeValue + '<hr>' + '</td>';
writtenString += '</tr>'
writtenString += '<tr>';
writtenString += '<td width="20%" rowspan="2">' + '<img src="' + x[i].getElementsByTagName("Photo")[0].childNodes[0].nodeValue + '" width="160">' + '</td>';
writtenString += '<td width="80%">' + x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue + '</td>';
writtenString += '</tr>';
writtenString += '<tr>';
writtenString += '<td>' + x[i].getElementsByTagName("Descrip")[0].childNodes[0].nodeValue + '</td>';
writtenString += '</tr>';
writtenString += '</table>';
}
}
placetooutput.innerHTML = writtenString;
}
</script>
P.S. childNodes don't exist in an empty XML tag so checking for a nodeValue on a empty tag will make your code error out.
I usually just write a function to retreive the value and do some validation inside of it.
Code:
//////////////////////////////////////////////////////////////////////////////
// getXMLvalue
//
// Given an XML node and an XML tag name - return the nodeValue of the tag
//
//////////////////////////////////////////////////////////////////////////////
function getXMLvalue (node,tagname) {
var tagValue = "";
// If tag exists
if (node.getElementsByTagName(tagname)[0]) {
// If tag is not empty get the value
if (node.getElementsByTagName(tagname)[0].firstChild) {
tagValue = node.getElementsByTagName(tagname)[0].firstChild.nodeValue;
}
}
return tagValue;
}
Bookmarks