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

Flex Discussion :

verification de la présence d'un element dans un fichier XML


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Par défaut verification de la présence d'un element dans un fichier XML
    Bonjour, je suis un nouveau développeur FLEX et j'ai besoin d'un petit coup de main SVP pour une vérification dans un fichier XML. J'ai pas mal cherché mais je finis par vous solliciter.

    Voici un fichier XML que je dois traiter par exemple dans mon programme FLEX.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <transac>
      <initialisation/>
      <action>
        <info m="1" p="3" nom="pat"/>
      </action>
    </transac>
    J'ai besoin de récupérer l'attribut nom de l'élément info.
    Je code donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var nom:String=noeuds..info[0].@nom;
    Ce qui fonctionne très bien à 99% du temps, sauf lorsque le fichier XML en entrée ne contient pas d'élément <action>, ou que l'attribut nom n'existe pas.
    Comment puis je donc tester leur existence pour empêcher flex de me faire des messages d'erreur du type "attribut inexistant" ?

    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    la solution consiste a remplacer @tonAttribut par attribute("tonAttribut").En effet la méthode XML.attribute retourne un XMLList vide si l'attribut n'existe pas , ce qui évite l'erreur d'attribut qui n'existe pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nom:String=noeuds..info[0].attribute("nom");

    Une autre solution est d'utiliser la méthode hasOwnProperty :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (selectedNode.hasOwnProperty("@nom") == true) {

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Par défaut
    Merci pour la réponse si rapide !

    Je me suis inspiré de votre aide pour ce code, qui semble être bien efficace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                var FirstInfo:XML=noeuds..info[0];
                var nom:String="";
    	     if (FirstInfo!=null){
    		 if (FirstInfo.hasOwnProperty("@nom")){
                        nom=FirstInfo.attribute("nom");						
    		 }				
    	     }
    Je suis preneur bien sur pour toute idée d'optimisation
    Merci encore.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Pouvez vous m'expliquer à quoi correspond " ..info[0] ".
    Est ce qu'on peut mettre plusieurs nœud comme cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <reponse>
       <action>
         <info m="1" p="3" nom="toto">
         <info m="44" p="5" nom="azerty">
         <temps s="2" nom="a">
       </action>
    </reponse>
    si oui, comment je peux manipuler ces valeurs.

    Merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Par défaut
    Bonjour, si j'ai bien compris :

    .. permet d'acceder aux éléments descendants

    dans ton cas, noeuds..info te donnera un objet XMLList qui va contenir :

    <info m="1" p="3" nom="toto">
    <info m="44" p="5" nom="azerty">

    [0] permet d'obtenir le 1er element du tableau (index 0)

    noeuds..info[0] te donnera donc : <info m="1" p="3" nom="toto">
    noeuds..info[1] te donnera donc : <info m="44" p="5" nom="azerty">

    donc oui tu peux mettre plusieurs élements <info>

    Je te conseille la lecture du chapitre 11 de http://livedocs.adobe.com/flex/3/progAS_flex3.pdf

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    merci pour la réponse,
    L'objet nœuds est défini ou?

Discussions similaires

  1. insertion de nouveaux elements dans un fichier xml
    Par Yoma41 dans le forum VB.NET
    Réponses: 4
    Dernier message: 19/08/2009, 14h07
  2. [JDOM] Copie et suppresion d'un element dans un fichier xml
    Par riderfun dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 24/03/2009, 10h59
  3. Ajout d'un element dans un fichier XML
    Par vacknov dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2007, 10h26
  4. [C# 2.0] Inserer un element dans un fichier Xml
    Par Khrysby dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/09/2006, 17h05
  5. Réponses: 3
    Dernier message: 29/06/2006, 16h54

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