Bonjour à tous
Voila je suis en formation continue en langage Java (sic!!). J'effectue un stage et je dois résoudre un sujet.
Oui je sais, le sujet a déjà été abordé mais j'ai du mal à faire le tri dans tout ce qui est dit.
Donc excusez moi pour ce post mais j'ai besoin d'un peu d'aide en la matière.
Ma problématique : afficher dans un fichier HTML le contenu d'un fichier XML se trouvant dans le même dossier en local.
Je veux donc écrire une fonction javascript qui charge le fichier XML, qui détecte le navigateur en présence, et qui détermine des objets à manipuler (si j'ai bien compris on ne manipule pas un XML de la même manière avec IE ou un autre navigateur, ai-je bon ?)
Première question : le test du navigateur en présence. Beaucoup de choses existent et j'ai compris que c'était important en fonction des objets à manipuler pour la suite.
J'ai trouvé cela :
Cela vous semble t-il correct ? Surtout quand on sait qu'il existe plein d'autres méthodes.
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 <script type="text/javascript"> var req; function loadXMLDoc() { req = false; // si navigateur <> ie if (window.XMLHttpRequest && !(window.ActiveXObject)) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // si navigateur = IE } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req) { req.onreadystatechange = processReqChange; req.open("GET", "ryls116Cv2.xml", true); req.send(""); } } </script>
Et voici ce que je fais pour tester le résultat de la requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript"> function processReqChange() { // only if req shows "loaded" if (req.readyState == 4) { alert("ok");// only if "OK" if (req.status == 200) { alert("ok");// ...processing statements go here... } else { alert("There was a problem retrieving the XML data:\n" + req.statusText); } } } </script>
Ce qui est bizarre c'est que aucune de mes alertes ne s'affiche!!!!
Cela voudrait-il dire qu'il ne lit pas le fichier XML ?
Voici d'ailleurs à quoi il ressemble.
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 <?xml version="1.0" encoding="UTF-8"?> <!-- New document created with EditiX at Tue Mar 23 10:16:31 CET 2010 --> <UU code_uu="00757" name="LYON" pop="132465" pdv="4.56" nbfaces="125"> <RESEAU id_reseau="12345" name="RESEAU1" nbfaces="125" couleur_marqueur=""> <COMMUNE insee="11111" name="AAAAA" nbfaces="45" pop="124578" pdv="" km=""> <IRIS id_iris="A1A1A1" name_iris="TRUC" nbfaces="" pop="" km=""> <MAGASIN id_mag="XXXXX" name_mag="" adresse=""> <PANNEAU id_panneau="11111"> <adr1>adr1</adr1> <adr2>adr2</adr2> <adr3>adr3</adr3> <format>400X300</format> <ecl>oui</ecl> <tri>non</tri> <etc>etc</etc> </PANNEAU> <PANNEAU id_panneau="22222"> <adr1>adr1</adr1> <adr2>adr2</adr2> <adr3>adr3</adr3> <format>400X300</format> <ecl>oui</ecl> <tri>non</tri> <etc>etc</etc> </PANNEAU> </MAGASIN> </IRIS> </COMMUNE> </RESEAU>
Deuxième question : Dois-je forcément passer par un objet XMLHttpRequest même si je suis en local ?
--> je suppose que oui mais je préfère avoir une réponse d'"experts".
N'y aurait-il pas un moyen de faire plus simple ? Ou bien est-ce obligatoire à partir du moment ou l'on souhaite manipuler du XML ?
Je pense que sa structure est correcte puisque construit avec un éditeur XML.
Je vais m'arréter pour le moment. Puis je verrai ensuite comment mettre en page mes données dans du HTML traditionnel.
Merci de votre patience et de vos réponses éventuelles.
Partager