Dr33tN
Legacy Member
In Firefox en IE wordt eveneens niets ge output.
In IE kan ik wel via JavaScript stukjes data uit de XML halen.
In FF krijg ik de melding: x[0] heeft geen eigenschappen. regel 30
Nohthans dit script komt van een opensource site die beweert dat het crossbrowser is. Wat gaat er fout?
Alvast merci!
teamleden.htm
teamleden.xml
functions.js
In IE kan ik wel via JavaScript stukjes data uit de XML halen.
In FF krijg ik de melding: x[0] heeft geen eigenschappen. regel 30
Nohthans dit script komt van een opensource site die beweert dat het crossbrowser is. Wat gaat er fout?
Alvast merci!
teamleden.htm
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="functions.js"></script>
<title>Teamleden</title>
</head>
<body onload="importXML('teamleden.xml');">
<p id="writeroot">
</p>
</body>
</html>
teamleden.xml
Code:
<?xml version="1.0" ?>
<leden>
<lid>
<id>1</id>
<nickname>user1</nickname>
<password>pass1</password>
<age>20</age>
</lid>
<lid>
<id>2</id>
<nickname>user2</nickname>
<password>pass2</password>
<age>21</age>
</lid>
</leden>
functions.js
Code:
function importXML(xmlFile)
{
if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.onload = createTable();
}
else if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function () {
if (xmlDoc.readyState == 4) createTable();
};
}
else
{
alert('Uw browser ondersteunt geen XML');
return;
}
xmlDoc.load(xmlFile);
document.write("XML met succes ingeladen!");
}
//Aanmaken van de Tabel met uitgelezen waarden.
function createTable()
{
var x = xmlDoc.getElementsByTagName('lid');
document.writeln(x[0].childNodes.length);
var newEl = document.createElement('TABLE');
newEl.setAttribute('cellPadding',5);
var tmp = document.createElement('TBODY');
newEl.appendChild(tmp);
var row = document.createElement('TR');
for (j=0;j<x[0].childNodes.length;j++)
{
if (x[0].childNodes[j].nodeType != 1) continue;
var container = document.createElement('TH');
var theData = document.createTextNode(x[0].childNodes[j].nodeName);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
for (i=0;i<x.length;i++)
{
var row = document.createElement('TR');
for (j=0;j<x[i].childNodes.length;j++)
{
if (x[i].childNodes[j].nodeType != 1) continue;
var container = document.createElement('TD');
var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
}
document.getElementById('writeroot').appendChild(newEl);
}
.