I haven't worked much with XML Data Islands, but what you are trying to do can be accomplished with XMLHttpRequest/ActiveXObject in a cross-browser solution:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Nice</title>
<script type="text/javascript">
var currentPosition;
var numEntries;
var entryArray;
function loadXML(url) {
if(typeof window.ActiveXObject != 'undefined')
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function () {
if (xmlDoc.readyState == 4) loadData();
};
xmlDoc.load(url);
}
else if (typeof XMLHttpRequest != 'undefined') {
var xmlHttpRequest;
xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.onreadystatechange = function () {
if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
xmlDoc = xmlHttpRequest.responseXML;
loadData();
}
}
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.send(null);
}
}
function loadData() {
entryArray = xmlDoc.getElementsByTagName('CD');
numEntries = entryArray.length;
currentPosition = -1;
gonext();
}
function gonext() {
if(currentPosition < numEntries - 1) { currentPosition++; }
else { currentPosition = 0; }
replace();
}
function goprevious() {
if(currentPosition > 0) { currentPosition--; }
else { currentPosition = numEntries - 1; }
replace();
}
function replace() {
document.getElementById('title').innerHTML = entryArray[currentPosition].getElementsByTagName('TITLE')[0].firstChild.nodeValue;
document.getElementById('artist').innerHTML = entryArray[currentPosition].getElementsByTagName('ARTIST')[0].firstChild.nodeValue;
}
</script>
</head>
<body onload="loadXML('cd_catalog.xml');">
<div>
Titolo: <span id="title"></span><br />
Artista: <span id="artist"></span><br />
</div>
<div >
<input type="button" value="Next" onclick="gonext();" />
<input type="button" value="Prev" onclick="goprev();" />
</div>
</body>
</html>
Your problem might be with mixing Data Islands and XMLHttpRequest... I'm not sure if you can load the XML into the Data Islands innerHTML...