Récupérer des valeurs dans un XML avec attribute de la forme val00,val01 val10,v [Résolu]

Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
- - Dernière réponse : cs_supergrey
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
- 17 juil. 2007 à 21:23
Bonjour, je viens de me mettre aux fichiers XML avec actionscript, j'arrive a récuperer les noeuds qu'il me faut, la ou je bloque c'est que le noeuds qui minterresse ressemble a ca:
<groupval values="0.2,0.4 0.5,0.5 0.8,1.2"/>

C'est toujours présenté comme ca càd un nombre variable de groupes de 2 valeurs séparées par une virgule, qui eux sont séparés par un espace.
Comment je peux faire pour récupérer les valeurs ?

Merci.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
3
Merci
salut, tu devrais t'interesser à la méthode "split" de la Class "Array", tu y trouveras tout ce dont tu as besoin pour séparer les valeurs.
Attention, le résultat obtenu ne sera pas une série de nombres, mais de strings.

Peg'
Le dico est ton ami, n'hésite pas à abuser de lui !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de pegase31
Messages postés
120
Date d'inscription
mercredi 14 décembre 2005
Statut
Membre
Dernière intervention
10 décembre 2007
3
Merci
Slt,
C'est vraiment pas la meilleure façon d'utiliser du XML mais bon partant du principe que tu ne peux pas le modifie, voici comment je découperais ta chaine :

   var chaineC:String = tonFichierXml.firstChild.childNodes[n].attributes.values; // Là tu place le chemin exact vers ton attribut
    var comptValeur =1;
    var codeCarac:Number;
    var carac:String;
    for(i= 0;i<chaineC.length;i++){
        codeCarac = chaineC.charCodeAt(i);
        carac = chaineC.substr(i,1);
        if(codeCarac != 44 && codeCarac != 32){
            if(_root["valeur"+comptValeur] == undefined){
                _root["valeur"+comptValeur] = "";
            }
            _root["valeur"+comptValeur] += carac; 
        }else{
            comptValeur ++
        }
    }

// et pour vérifier tout ça :

     for(j =1;j<=comptValeur;j++){
         trace(_root["valeur"+j]);
     }
   

Voilà dans cet exemple tu te retrouvera avec des chaines nommées "valeur1", "valeur2"... contenant tes valeurs de tes attributs.

++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_embalmer
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
0
Merci
J'ai choisi la méthode split je la trouve plus lisible, je sépare d'abord par les espace pour récupérer les groupes et ensuite avec les virgules pour récupérer les deux deux valeur du groupe.

Le fichier XML est créé par un logiciel de modélisation donc je dois faire avec, grace a ca je récupere les valeur x y z de chaque polygone...

Merci
Commenter la réponse de cs_supergrey