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
merci de votre aide
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>
Partager