Ik ben bezig data uit een xml bestand in een html tabel te zetten alleen lukt het me niet om het externe xml bestand aan te roepen via html. Als je gebruik maakt van: src="Bestand.xml" dan wordt dit wel getoond in IE maar niet in FireFox. Kan iemand mij hierbij helpen.
Dat klopt ook, het is IE only.
Hoe kan ik dat aanpassen zodat het ook onder Firefox werkt?
Dit is me code:
<html>
<head>
<title>Bestellingen</title>
<style type="text/css">
xml {display: none;}
</style>
<script>
function findTable(id)
{
id = "#" + id;
var tables = document.getElementsByTagName("table");
var i;
for (i=0; i < tables.length; i++) {
var table = tables[i];
if (table.getAttribute("datasrc") == id)
return table;
}
return null;
}
function getDataFieldNames(table)
{
var array = new Array();
var divs = table.getElementsByTagName("div");
var i;
for (i=0; i < divs.length; i++) {
var div = divs[i];
var datafld = div.getAttribute("datafld");
if (datafld != null && datafld != "") {
array[i] = datafld;
}
}
if (array.length < 1) {
return null;
}
return array;
}
function getSrcFieldValues(xml, fieldNames)
{
var srcs = new Array();
var i;
for (i=0; i < fieldNames.length; i++) {
var field = fieldNames[i];
srcs[field] = xml.getElementsByTagName(field);
}
return srcs;
}
function fillTable(table, srcs)
{
var trtemplate = table.firstChild.removeChild(table.firstChild.firstChild);
var tdtemplate = trtemplate.removeChild(trtemplate.firstChild);
while (trtemplate.firstChild) {
trtemplate.removeChild(trtemplate.firstChild);
}
table = table.firstChild; // tbody, really
var cols = 0;
for (field in srcs) {
srcs[cols++] = field;
}
var row;
for (row = 0; row < srcs[srcs[0]].length; row++) {
var tr = trtemplate.cloneNode(true);
var col;
for (col=0; col < cols; col++ ) {
var td = tdtemplate.cloneNode(true);
var div = td.firstChild;
div.setAttribute("datafld", srcs[col]);
var textNode = document.createTextNode(srcs[srcs[col]][row].firstChild.nodeValue);
div.appendChild(textNode);
tr.appendChild(td);
}
table.appendChild(tr);
}
}
function loadTableData()
{
if (!document.all) {
var i;
var xmlNodes = document.getElementsByTagName("xml");
for (i=0; i< xmlNodes.length; i++) {
var xml = xmlNodes[i];
var id = xml.getAttribute("id");
var table = findTable(id);
var fields = getDataFieldNames(table);
var srcs = getSrcFieldValues(xml, fields);
fillTable(table, srcs);
}
}
}
</script>
</head>
<body onload="loadTableData();">
<xml id="xmlNames">
<DVDS>
<DVD>
<Titel>American Pie 3: The Wedding</Titel>
<Genre>Comedy</Genre>
<Jaar>2003</Jaar>
<Speelduur>96 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Lord of the Rings: The Return of the King</Titel>
<Genre>Fantasie/Actie/Avontuur</Genre>
<Jaar>2003</Jaar>
<Speelduur>201 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Oceans Eleven</Titel>
<Genre>Actie</Genre>
<Jaar>2001</Jaar>
<Speelduur>116 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Shark Tale</Titel>
<Genre>Animatie/Comedy/Familiefilm</Genre>
<Jaar>2004</Jaar>
<Speelduur>90 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Saw</Titel>
<Genre>Thriller/Horror</Genre>
<Jaar>2004</Jaar>
<Speelduur>102 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Collateral</Titel>
<Genre>Thriller/Drama</Genre>
<Jaar>2004</Jaar>
<Speelduur>120 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Last Castle</Titel>
<Genre>Drama/Actie</Genre>
<Jaar>2001</Jaar>
<Speelduur>131 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Me,Myself and Irene</Titel>
<Genre>Comedy/Avontuur</Genre>
<Jaar>2000</Jaar>
<Speelduur>116 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Hot Chick</Titel>
<Genre>Comedy</Genre>
<Jaar>2000</Jaar>
<Speelduur>104 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Troy</Titel>
<Genre>Actie/Avontuur/Drama/Oorlog</Genre>
<Jaar>2004</Jaar>
<Speelduur>163 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Blade: Trinity</Titel>
<Genre>Actie/Horror/Thriller</Genre>
<Jaar>2004</Jaar>
<Speelduur>113 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Terminal</Titel>
<Genre>Drama/Comedy</Genre>
<Jaar>2004</Jaar>
<Speelduur>128 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Texas Chainsaw Massacre</Titel>
<Genre>Horror/Actie</Genre>
<Jaar>2003</Jaar>
<Speelduur>98 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Shrek 2</Titel>
<Genre>Animatie/Comedy/Familiefilm/Fantasy</Genre>
<Jaar>2004</Jaar>
<Speelduur>92 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Spiderman 2</Titel>
<Genre>Actie/Fantasy/Thriller/Science Fiction</Genre>
<Jaar>2004</Jaar>
<Speelduur>127 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
</DVDS>
</xml>
<h1>Bestellingen</h1>
<table datasrc="#xmlNames" border="1">
<tr>
<td><div datafld="Titel" /></td>
<td><div datafld="Genre" /></td>
<td><div datafld="Jaar" /></td>
<td><div datafld="Speelduur" /></td>
<td><div datafld="Prijs" /></td>
</tr>
</table>
</body>
</html>
Dit is me code:
<html>
<head>
<title>Bestellingen</title>
<style type="text/css">
xml {display: none;}
</style>
<script>
function findTable(id)
{
id = "#" + id;
var tables = document.getElementsByTagName("table");
var i;
for (i=0; i < tables.length; i++) {
var table = tables[i];
if (table.getAttribute("datasrc") == id)
return table;
}
return null;
}
function getDataFieldNames(table)
{
var array = new Array();
var divs = table.getElementsByTagName("div");
var i;
for (i=0; i < divs.length; i++) {
var div = divs[i];
var datafld = div.getAttribute("datafld");
if (datafld != null && datafld != "") {
array[i] = datafld;
}
}
if (array.length < 1) {
return null;
}
return array;
}
function getSrcFieldValues(xml, fieldNames)
{
var srcs = new Array();
var i;
for (i=0; i < fieldNames.length; i++) {
var field = fieldNames[i];
srcs[field] = xml.getElementsByTagName(field);
}
return srcs;
}
function fillTable(table, srcs)
{
var trtemplate = table.firstChild.removeChild(table.firstChild.firstChild);
var tdtemplate = trtemplate.removeChild(trtemplate.firstChild);
while (trtemplate.firstChild) {
trtemplate.removeChild(trtemplate.firstChild);
}
table = table.firstChild; // tbody, really
var cols = 0;
for (field in srcs) {
srcs[cols++] = field;
}
var row;
for (row = 0; row < srcs[srcs[0]].length; row++) {
var tr = trtemplate.cloneNode(true);
var col;
for (col=0; col < cols; col++ ) {
var td = tdtemplate.cloneNode(true);
var div = td.firstChild;
div.setAttribute("datafld", srcs[col]);
var textNode = document.createTextNode(srcs[srcs[col]][row].firstChild.nodeValue);
div.appendChild(textNode);
tr.appendChild(td);
}
table.appendChild(tr);
}
}
function loadTableData()
{
if (!document.all) {
var i;
var xmlNodes = document.getElementsByTagName("xml");
for (i=0; i< xmlNodes.length; i++) {
var xml = xmlNodes[i];
var id = xml.getAttribute("id");
var table = findTable(id);
var fields = getDataFieldNames(table);
var srcs = getSrcFieldValues(xml, fields);
fillTable(table, srcs);
}
}
}
</script>
</head>
<body onload="loadTableData();">
<xml id="xmlNames">
<DVDS>
<DVD>
<Titel>American Pie 3: The Wedding</Titel>
<Genre>Comedy</Genre>
<Jaar>2003</Jaar>
<Speelduur>96 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Lord of the Rings: The Return of the King</Titel>
<Genre>Fantasie/Actie/Avontuur</Genre>
<Jaar>2003</Jaar>
<Speelduur>201 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Oceans Eleven</Titel>
<Genre>Actie</Genre>
<Jaar>2001</Jaar>
<Speelduur>116 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Shark Tale</Titel>
<Genre>Animatie/Comedy/Familiefilm</Genre>
<Jaar>2004</Jaar>
<Speelduur>90 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Saw</Titel>
<Genre>Thriller/Horror</Genre>
<Jaar>2004</Jaar>
<Speelduur>102 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Collateral</Titel>
<Genre>Thriller/Drama</Genre>
<Jaar>2004</Jaar>
<Speelduur>120 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Last Castle</Titel>
<Genre>Drama/Actie</Genre>
<Jaar>2001</Jaar>
<Speelduur>131 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Me,Myself and Irene</Titel>
<Genre>Comedy/Avontuur</Genre>
<Jaar>2000</Jaar>
<Speelduur>116 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Hot Chick</Titel>
<Genre>Comedy</Genre>
<Jaar>2000</Jaar>
<Speelduur>104 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Troy</Titel>
<Genre>Actie/Avontuur/Drama/Oorlog</Genre>
<Jaar>2004</Jaar>
<Speelduur>163 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Blade: Trinity</Titel>
<Genre>Actie/Horror/Thriller</Genre>
<Jaar>2004</Jaar>
<Speelduur>113 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Terminal</Titel>
<Genre>Drama/Comedy</Genre>
<Jaar>2004</Jaar>
<Speelduur>128 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>The Texas Chainsaw Massacre</Titel>
<Genre>Horror/Actie</Genre>
<Jaar>2003</Jaar>
<Speelduur>98 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Shrek 2</Titel>
<Genre>Animatie/Comedy/Familiefilm/Fantasy</Genre>
<Jaar>2004</Jaar>
<Speelduur>92 min.</Speelduur>
<Prijs>18,- Euro</Prijs>
</DVD>
<DVD>
<Titel>Spiderman 2</Titel>
<Genre>Actie/Fantasy/Thriller/Science Fiction</Genre>
<Jaar>2004</Jaar>
<Speelduur>127 min.</Speelduur>
<Prijs>15,- Euro</Prijs>
</DVD>
</DVDS>
</xml>
<h1>Bestellingen</h1>
<table datasrc="#xmlNames" border="1">
<tr>
<td><div datafld="Titel" /></td>
<td><div datafld="Genre" /></td>
<td><div datafld="Jaar" /></td>
<td><div datafld="Speelduur" /></td>
<td><div datafld="Prijs" /></td>
</tr>
</table>
</body>
</html>
Ja dikke neus.
We zijn hier niet van de drop hier je source en de w&g mensen lossen je probleem op- brigade.
We zijn hier niet van de drop hier je source en de w&g mensen lossen je probleem op- brigade.
Dit topic is gesloten.
![]()