Bonjour,
Voila j'ai un bout de code simple qui normalement devrait bien fonctioner sur IE et FF, mais malheureusement cela ne marche pas, alors peut être pourriez vous m'aidez,
Voila le code du fichier XML (simple) Fichier : annuaire.xml
le XSD : (annuaire.xsd)
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 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE annuaire SYSTEM "annuaire.xsd"> <annuaire> <personne> <denomination> <nom>toto</nom> <prenom>tata</prenom> </denomination> <adresse> <telephone> <fixe>00.00.00.00.00.</fixe> <portable>00.00.00.00.00.</portable> </telephone> <rue numero="10">henri</rue> <ville>xxxx</ville> <code>12345</code> </adresse> </personne> <personne> <denomination> <nom>titi</nom> <prenom>tutu</prenom> </denomination> <adresse> <telephone> <fixe>00.00.00.00.00.</fixe> <portable>00.00.00.00.00.</portable> </telephone> <rue numero="10">henri</rue> <ville>xxxx</ville> <code>123456</code> </adresse> </personne> </annuaire>
et enfin le Java : (fichier HTML)
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 <?xml version="1.0" encoding="ISO-8859-1"?> <element name="annuaire" xmlns="http://relaxng.org/ns/structure/1.0"> <oneOrMore> <element name="personnes"> <element name="denomination"> <element name="nom"> <text/> </element> <element name="prenom"> <text/> </element> </element> <element name="adresse"> <element name="telephone"> <element name="fixe"> <text/> </element> <element name="portable"> <text/> </element> </element> <element name="rue"> <attribute name="numero"> <text/> </attribute> <text/> </element> <element name="ville"> <text/> </element> <element name="code"> <text/> </element> </element> </element> </oneOrMore> </element>
(fichier submitFormNom.js)
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script language="javascript" src="writeResult.js" type="text/javascript"> </script> <script language="javascript" src="submitFormNom.js" type="text/javascript"> </script> <title></title> </head> <body> <form method="post" name="ajax" action="#" id="ajax"> Nom : <input type="text" name="rechercheNom" value="NOM" /> <input type="BUTTON" value="Submit" onclick="submitFormNom()" /> Prénom : <input type="text" name="recherchePrenom" value="PRENOM" /> <input type="BUTTON" value="Submit" onclick="submitFormPrenom()" /> </form> <div id="resultats"> </div> </body> </html>
(fichier writeResult.js)
Code javascript : 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 function submitFormNom() { document.getElementById("resultats").innerHTML = ""; var xhr; try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e2) { try { xhr = new XMLHttpRequest(); } catch (e3) { xhr = false; } } } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { var preparation = '<table border="1"><tr>'; preparation += '<td rowspan="2">Nom</td>'; preparation += '<td rowspan="2">Prénom</td>'; preparation += '<td rowspan="2">Adresse</td>'; preparation += '<td colspan="2">telephone</td>'; preparation += '</tr><tr>'; preparation += '<td>Fixe</td>'; preparation += '<td>Portable</td>'; preparation += '</tr></table>'; document.getElementById("resultats").innerHTML = preparation; var doc = xhr.responseXML; var root = doc.getElementsByTagName('annuaire').item(0); var personne = root.firstChild; var nom = personne.getElementsByTagName('nom').item(0); var recherche = document.ajax.rechercheNom.value.toLowerCase(); if (nom.firstChild.nodeValue.toLowerCase().match(recherche) == recherche) { writeResultat(personne); } while(personne.nextSibling != null) { personne = personne.nextSibling; var nom = personne.getElementsByTagName('nom').item(0); if (nom.firstChild.nodeValue.toLowerCase().match(recherche) == recherche) { writeResultat(personne); } } } else { //document.ajax.dyn.value="Error code " + xhr.status; } } }; xhr.open( "GET", "annuaire.xml", true); xhr.send(null); }
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 function writeResultat(personne) { var xhr; try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e2) { try { xhr = new XMLHttpRequest(); } catch (e3) { xhr = false; } } } xhr.open( "GET", "annuaire.xml", true); xhr.send(null); var doc = xhr.responseXML; var nom = personne.getElementsByTagName('nom').item(0); var prenom = personne.getElementsByTagName('prenom').item(0); var fixe = personne.getElementsByTagName('fixe').item(0); var portable = personne.getElementsByTagName('portable').item(0); var rue = personne.getElementsByTagName('rue').item(0); var ville = personne.getElementsByTagName('ville').item(0); var code = personne.getElementsByTagName('code').item(0); var numero = personne.getElementsByTagName('rue').item(0).getAttribute('numero'); var resultat = '<table><tr>'; resultat += '<td>' + nom.firstChild.nodeValue + '</td>'; resultat += '<td>' + prenom.firstChild.nodeValue + '</td>'; resultat += '<td>' + numero + ' ' + rue.firstChild.nodeValue + ' ' + code.firstChild.nodeValue + ' ' + ville.firstChild.nodeValue + '</td>'; resultat += '<td>' + fixe.firstChild.nodeValue + '</td>'; resultat += '<td>' + portable.firstChild.nodeValue + '</td></tr></table>'; document.getElementById("resultats").innerHTML += resultat; }
Partager