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 :

Communiquer correctement avec un XML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut Communiquer correctement avec un XML
    Bonjour à tous et toutes,
    Vous allez bien?
    J'ai un petit soucis avec la recherche dans un doc XML, un bête classement, je connais le nombre de nœuds qui se trouve dans mon XML (10 places)
    Seulement j'ai l'impression qu'il y a un soucis avec l'extraction des infos stockées: Mon code 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    $(document).ready(function(){
        lireClassement();
    });
     
    function chargerXML(){
     
        // Routine de vérification si le navigateur gêre la méthode utilisée
        if (document.implementation && document.implementation.createDocument)
        {
            xmlDoc = document.implementation.createDocument("", "", null);
     
        }
        else if (window.ActiveXObject)
        {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
         }
        else
        {
            alert('Non compatible');
            return;
        }
        xmlDoc.load("Xml/Classement.xml");
     
        return xmlDoc;
    }
     
    function lireClassement(){
        var docXml = chargerXML();
        var tabNom = docXml.getElementsByTagName('nom');
        var tabPrenom = docXml.getElementsByTagName('prenom');
        var tabTemps = docXml.getElementsByTagName('scoreTemps');
        var tabPoints = docXml.getElementsByTagName('scorePoints');
     
        for( i = 0 ; i<10 ; i++)
        {
            var nom = tabNom[i].firstChild.nodeValue;
            var prenom = tabPrenom[i].firstChild.nodeValue;
            var temps = tabTemps[i].firstChild.nodeValue;
            var points = tabPoints[i].firstChild.nodeValue;
            if(nom=="" && prenom=="")
            {
                var n = i+1;
                alert("Place"+n+" est vide.");
            }
            else
            {
                alert ("Nom: "+nom+" Prenom: "+prenom+" Temps: "+temps+" Score: "+points);
            }
        }
    }
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 099
    Par défaut
    Salut,

    je vois que tu utilises jQuery, et que tu utilises un fichier xml de ton propre serveur. Pourquoi ne pas utiliser $.get() ?

    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var $xml;
    $.get('Xml/Classement.xml', {}, function( data, status, broker ) {
    	$xml = broker.responseXML;
    });

    Sinon, pour répondre à ta question, il faudrait qu'on voie le XML concerné.

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut
    Merci pour ta suggestion, je vais me doc sur cette méthode.
    Voici comment est défini mon XML:

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>  
    <Classement>
    	<premier>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>
    	</premier>
    	<deuxieme>
    		<nom></nom>
    		<prenom></prenom>		
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>
    	</deuxieme>
    	<troisieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>
    	</troisieme>
    	<quatrieme>
    		<nom></nom>
    		<prenom></prenom>		
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>
    	</quatrieme>
    	<cinquieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>		
    	</cinquieme>
    	<sixieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>
    	</sixieme>
    	<septieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>		
    	</septieme>
    	<huitieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>		
    	</huitieme>
    	<neuvieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>		
    	</neuvieme>
    	<dixieme>
    		<nom></nom>
    		<prenom></prenom>
    		<scoreTemps></scoreTemps>
    		<scorePoint></scorePoint>		
    	</dixieme>
    </Classement>
    Pour le moment il est vide, j'espère pouvoir écrire dans le fichier pour le mettre à jour suite à un petit jeu de calculs avec temps et points.

  4. #4
    Membre confirmé Avatar de arkham55
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 179
    Par défaut
    Merci beaucoup en tout cas, ça m'a bien aidé!
    J'utilise la fonction ajax de JQuery, qui est bien adaptée à ce que je voulais faire, pour l'écriture dans le XML par contre ce sera plus délicat.

    Ma solution avec mon fichier xml:
    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
    $.ajax({
            type: "GET",
    		url: "Xml/Classement2.xml",
    		dataType: "xml",
    		success: function(docXml) {
    			$(docXml).find('Classement').each(function(){
    				$(this).find('premier').each(function(){
    					var nom = $(this).find('nom').text();
    					var prenom = $(this).find('prenom').text();
    					var temps = $(this).find('scoreTemps').text();
    					var points = $(this).find('scorePoints').text();
    					alert(nom+prenom+temps+points);
     
    				});
     
    			});
    		}
    	});
    Là il n'affiche que le contenu du nœud 'premier', le mieux est quand même de renommer les nœuds dans le xml par "position" simplement, la méthode 'each' étant plus pratique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(this).find('position').each(function(){
        ...
     
    });
    Write less, do more. ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur http 404 ressource non disponible avec web.xml correctement configuré
    Par <yassou> dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 12/06/2015, 10h32
  2. [xslt] For-each dans template avec format XML (row)
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/11/2005, 11h14
  3. [Tomcat] Problème avec web.xml
    Par hichamus dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/03/2005, 16h57
  4. Netbeans 4.0 + jar avec Build.xml
    Par sbibi dans le forum NetBeans
    Réponses: 2
    Dernier message: 02/02/2005, 12h25
  5. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16

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