IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Vos lumières pour lire du XML dans du HTML


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Points : 72
    Points
    72
    Par défaut Vos lumières pour lire du XML dans du HTML
    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 :

    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>
    Cela vous semble t-il correct ? Surtout quand on sait qu'il existe plein d'autres méthodes.
    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.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.

    Déjà, la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.XMLHttpRequest && !(window.ActiveXObject))
    est mauvaise selon moi. Il faut toujours privilégier l'utilisation d'un objet XMLHttpRequest, même pour IE, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.XMLHttpRequest)
    est largement préférable.

    Ensuite, essaye
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Salut.

    Déjà, la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.XMLHttpRequest && !(window.ActiveXObject))
    est mauvaise selon moi. Il faut toujours privilégier l'utilisation d'un objet XMLHttpRequest, même pour IE, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.XMLHttpRequest)
    est largement préférable.

    Ensuite, essaye
    Merci pour ces premiers éléments
    Je vais rectifier
    a+

Discussions similaires

  1. boucle pour lire du XML dans du Flash
    Par manue64 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/10/2008, 12h23
  2. Réponses: 7
    Dernier message: 26/05/2007, 15h14
  3. Probleme pour lire et ecrire dans un meme flux
    Par kururin dans le forum C#
    Réponses: 1
    Dernier message: 18/05/2007, 18h50
  4. [Tableaux] Besoin de vos lumière pour ce code
    Par Andry dans le forum Langage
    Réponses: 7
    Dernier message: 18/07/2006, 09h11
  5. [[xml]->[php]->[MySQL]] script php pour lire du xml
    Par koudjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/06/2006, 03h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo