Bonjour, j'ai un problème avec un javascript qui sert a faire fonctionner les xml data island sous firefox, je voudrais pouvoir mettre le xml hors de la page grace a la balise standard <xml id="7777" src="tt.xml"></xml>

mais le javascript lui ne veut pas et comme je n'y connais rien je trouve pas la solution

voici le code


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<HTML><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/plain; charset=utf-8">
<title>XML data islands </title>
<style type="text/css">
xml {display: none;}
</style>
<script language="JavaScript" type="text/JavaScript">
 
function getTable(identifiant){
	//Récupère toutes les balises TABLE
	var balisesTables = document.getElementsByTagName("table");
  for (var i=0; i < balisesTables.length; i++) {
    var table = balisesTables[i];
		//Pour chaque TABLE trouvée regarde si l'attribut datasrc correspond à l'indentifiant 
    if (table.getAttribute("datasrc") == "#"+identifiant){
      //C'est la bonne TABLE
			return table;
		}
  }
return null;
}
 
function getdatafldNom(table){
  var datafldNom = new Array();
	// Récupère toutes les balises DIV de la table Modèle
  var balisediv = table.getElementsByTagName("div");
	//Recupère la valeur de l'attribut datafld des balises DIV
	//Mette cette valeur dans le tableau datafldNom
  for (var i=0; i < balisediv.length; i++) {
    var datafld = balisediv[i].getAttribute("datafld");
      datafldNom[i] = datafld;
  }
  return datafldNom;
}
function getXmlValue(identifiant,allDatafldTitre){
	var valeurs = new Array();
	//Recupère le XML don lID est égal à identifiant
	var objXml = document.getElementById(identifiant);
	//Parcour la structure du XML
  for (var i=0; i < allDatafldTitre.length; i++) {
		//Recupère la balise ayant comme nom (nom prenom age)
		var tableValeur =objXml.getElementsByTagName(allDatafldTitre[i]);
		valeurs[i] = new Array();
		//Recupère les valeurs des balises de même nom
		for(var j=0;j<tableValeur.length;j++){
		 valeurs[i][j] =tableValeur[j].firstChild.nodeValue;
		}
  }
  return valeurs;
}
 
function setTable(montableau,alldatafldTitre,alldatafldValue){
	//Efface le TR du TABLE
	montableau.deleteRow(0);
	//Remplie le tableau avec les valeurs du XML 
  for (var row = 0; row < alldatafldValue[0].length; row++) {
			//Creation d'une ligne TR
			var tr = montableau.insertRow(row);
			for (var col=0; col < alldatafldTitre.length; col++ ) {
					//Creation d'une cellule TD
					var td = tr.insertCell(col);
					//Assignation de la valeur dans la cellule TD
					td.innerHTML = alldatafldValue[col][row];
					//Assignation de la cellule TD a la ligne TR
					tr.appendChild(td);
			}
  }
}
 
function traitexml(){
if(document.all){
}else{
	var montableau = getTable("dmc");
	var alldatafldTitre = getdatafldNom(montableau);
	var alldatafldValue = getXmlValue("dmc",alldatafldTitre);
	setTable(montableau,alldatafldTitre,alldatafldValue);
}
}
 
</script>
</head>
<body onload="traitexml()">
Pour les Utilisateurs de Netscape, FireFox,... Afficher le code source pour voir le code
<xml id="dmc">
  <donnes>
    <personne>
      <nom>Dmc1</nom>
      <prenom>Alias1</prenom>
      <age>12</age>
    </personne>
    <personne>
      <nom>Dmc</nom>
      <prenom>Alias</prenom>
      <age>120</age>
    </personne>
  </donnes>
</xml>
<table  datasrc="#dmc" border="1" id="">
  <tr>
    <td><div datafld="nom"></div></td>
    <td><div datafld="prenom"></div></td>
    <td><div datafld="age"></div></td>
  </tr>
</table>
<hr>
 
<div datasrc="#dmc" datafld="nom"></div>
<div datasrc="#dmc" datafld="prenom"></div>
<div datasrc="#dmc" datafld="age"></div>
 
 
</body>
</html>
merci de votre aide