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

ActionScript 3 Discussion :

Valeur XML et AS3


Sujet :

ActionScript 3

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut Valeur XML et AS3
    Bonjour à tous,

    Je travaille sur une carte interactive en Flash et je récupère des valeurs dans un fichiers XML. Jusque là tout allait bien jusqu'au moment où une contrainte est apparue et là... je bloque complet ...

    Dans mon fichier XML (un fichier pour chaque commune de la carte) je dois garder en mémoire les années de réalisation depuis 2007. Dans un premier temps voici à quoi ressemble 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
    <Realisation name="2007">
        <Operation_EP>...</Operation_EP>
        <Operation_PPI>...</Operation_PPI>
        <MetreTranchees>...</MetreTranchees>
    <Realisation>
    <Realisation name="2008">
        <Operation_EP>...</Operation_EP>
        <Operation_PPI>...</Operation_PPI>
        <MetreTranchees>...</MetreTranchees>
    <Realisation>
    <Realisation name="2009">
        <Operation_EP>...</Operation_EP>
        <Operation_PPI>...</Operation_PPI>
        <MetreTranchees>...</MetreTranchees>
    <Realisation>

    Dans mon AS, j'aimerai avoir le moyen de récupérer l'année de la dernière réalisation (name="2009") sans saisir l'attribut en dur :

    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
    // Chargement du fichier XML
    [...]
    var informations_commune:XMLList = adresses.elements(); 
    for each(var information_commune:XML in informations_commune)
    {
        var tranchees:TextField = new TextField(); 
        // Position du textfield
        tranchees.x=240;
        tranchees.y=185;
        // On récupère le noeud voulu (ça ne fonctionne pas mais ça devrait être dans ce goût là je suppose...)
        tranchees.text = information_commune.Realisation.(@name=="2009").MetreTranchees;
        tranchees.setTextFormat(miseEnForme);
        // On l'affiche sur la carte
        onglet_realisation_commune1.addChild(tranchees);
    }

    Dans ma carte, j'aimerais afficher seulement la dernière année. Donc il me faudrait remplacer (@name=="2009") par une variable dans l'AS. Sachant que dans mon fichier XML je récupère l'année la plus récente comme ceci :



    J'espère avoir étais assez précise ! Merci d'avance pour vos réponses

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Tu veux donc complètement ignorer les nœuds précédents dans le fichier XML?

    Un truc comme ça peut-être (basé sur l’exemple xml que tu as donne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var _xmlList:XMLList = information_commune.Realisation; 
    var _lastEntry:uint = _xmlList.length()-1;
     
    var tranchees:TextField = new TextField(); 
    tranchees.x=240;
    tranchees.y=185;
    tranchees.text = = xmlList[_lastEntry].MetreTranchees;
    tranchees.setTextFormat(miseEnForme);
    onglet_realisation_commune1.addChild(tranchees);
    Mais j'ai l'impression de ne pas tout avoir compris

    Greg

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut
    Merci pour ta réponse !

    Je veux ignorer les nœuds réalisation des années précédentes et ne garder que le nœud de l'année 2009 par exemple.

    Le problème dans ta solution, c'est qu'il faut que les nœuds soient par ordre chronologique dans le fichier XML. Alors qu'il se peut que mes nœuds ne soient pas dans l'ordre !

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Realisation name="2009">
    [...]
    </Realisation>
    <Realisation name="2007">
    [...]
    </Realisation>
    <Realisation name="2008">
    [...]
    </Realisation>

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Ok, ca alors:

    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
    var _xmlList:XMLList = information_commune.Realisation; 
    var _numEntries:uint = _xmlList.length();
    var _highestNum:Number = 0;
    var _highestNumInt:uint;
     
    for(var i:uint=0;i<_numEntries;i++){
     
    var _num = Number(information_commune.Realisation.@name);
     
    if(_num>_highestNum){
    _highestNum = _num;
    _highestNumInt = i;
    }
     
    }
     
    var tranchees:TextField = new TextField(); 
    tranchees.x=240;
    tranchees.y=185;
    tranchees.text = = xmlList[_highestNumInt].MetreTranchees;
    tranchees.setTextFormat(miseEnForme);
    onglet_realisation_commune1.addChild(tranchees);
    J'ai pas teste mais tu vois l'astuce ;-)

Discussions similaires

  1. [XSLT] Copie valeur XML
    Par bobsaoul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/01/2009, 08h29
  2. [AJAX] [Cluetip] récupérer valeur xml
    Par Benat64 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/11/2008, 16h29
  3. xmlns bloque la lecture d'un fichier XML en as3
    Par line6 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 17/03/2008, 11h53
  4. [XSL] Opération sur des valeurs XML grâce à Javascript
    Par kimar dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 26/06/2007, 12h57
  5. [XML] mettre les valeurs XML dans un array
    Par yodark dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 05/01/2006, 17h35

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