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

Flash Discussion :

Recherche Xptah dans la Valeur des noeuds


Sujet :

Flash

  1. #1
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut Recherche Xptah dans la Valeur des noeuds
    Salut a tous, voilà j'ai un petit pb de recherche Xpath. Si quelqu'un pouvait m'aider ce serait sympas.

    Voici un bout de mon code 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
     
    <PRODUCTS>
    ...
        <PRODUCT>
             ...
          <TYPEACCESSOIRES>
            <ID_TYPEACCESOIRE><![CDATA[121]]></ID_TYPEACCESOIRE>
          </TYPEACCESSOIRES>
          <MARQUES>
            <ID_MARQUE id="185">185</ID_MARQUE>
            <ID_MARQUE id="189">189</ID_MARQUE>
            <ID_MARQUE id="184">184</ID_MARQUE>
            <ID_MARQUE id="201">201</ID_MARQUE>
            <ID_MARQUE id="186">186</ID_MARQUE>
            <ID_MARQUE id="187">187</ID_MARQUE>
          </MARQUES>
    ...
    </PRODUCT>
    <PRODUCT>
             ...
          <TYPEACCESSOIRES>
            <ID_TYPEACCESOIRE><![CDATA[121]]></ID_TYPEACCESOIRE>
          </TYPEACCESSOIRES>
          <MARQUES>
            <ID_MARQUE id="190">190</ID_MARQUE>
            <ID_MARQUE id="185">185</ID_MARQUE>
            <ID_MARQUE id="189">189</ID_MARQUE>
            <ID_MARQUE id="184">184</ID_MARQUE>
            <ID_MARQUE id="201">201</ID_MARQUE>
            <ID_MARQUE id="186">186</ID_MARQUE>
            <ID_MARQUE id="187">187</ID_MARQUE>
          </MARQUES>
    ...
    </PRODUCT>
    ...
    </PRODUCTS>
    Voilà ! Ce que je cherche afaire c retrouver tout les noeud PRODUCT qui ont un ID_MARQUE égal à 185 par exemple.

    J'ai donc fait un truc de ce genre :
    xNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*[ID_MARQUE='185']");
    ça marche , mais a moitié ! Dans mon flux XML j'ai au total, 26 balise PRODUCT avec un ID_MARQUE=185 et le chemin que j'ai mis ne m'en retourne que 17. J'ai rechercher qu'elle était c'est noeud, apparemment, c les 17 noeud PRODUCT qui aurait la premiere balilse ID_MARQUE = à 185.

    Comment faire pour tout les lister.

    J'ai essayer en mettant un attribut de meme valeur avec cette requette :
    ssongletNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*/*[@id=185]");
    Là ça marche, j'ai bien mais 26 balises PRODUCT.

    Mais je suis un peu buté et je veux comprendre pourquoi je n'arrive pas a trouver 26 noeuds PRODUCT en faisant une recherche sur la valeur du noeud alors que sur l'attribut ça marche.

    Je me trompe peut-être dans le chemin !
    ---
    "Rien n'est impossible"
    http://journaldeguillaume.blogspot.com

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*[ID_MARQUE='185']");
    ceci doit te remonter les noeuds contenant un noeud ID_MARQUE a la valeur 185...c est à dire que ça te remonte...MARQUES

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssongletNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*/*[@id=185]");
    ceci te remonte les enfants des enfants de product ayant un attribut id de valeur 185...c est à dire <ID_MARQUE>185</>

    si je ne me trompe pas...
    donc se serait plutot
    xNode = mx.xpath.XPathAPI.selectNodeList(_root.document.firstChild, "*/PRODUCTS/PRODUCT/*/*[. ou value()='185']");

    Maintenant j ai utilisé l aPI xpath sous flash et franchement ça ne marche vraiment pas bien, à ta place je ferai plutôt des boucles en utilisant le DOM XML. De plus, je ne sais pas si on a le droit à la syntaxe donné ici avec le ".3 ou "value()"

  3. #3
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut
    mercu luta d'avoir répondu aussi vite!

    effectivement danbs le premier cas, celame remonte la balise MARQUES, et dans le deuxième cas, la ou les balises ID_MARQUE.

    J'ai essayé ta proposition mais ça ne marche pas. Je sais pas si c moi qui m'y prend mal, mais je suis d'accord avec toi l'implémentation d'Xpath dans flash est vraiment mal foutu.

    Quand du parle du DOM XML c'est une autre classe flash ou c l'extension PHP ?
    ---
    "Rien n'est impossible"
    http://journaldeguillaume.blogspot.com

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    non non je parle simplement d utiliser la classe xmlNode de flash

  5. #5
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut
    Il n'y a rien a faire, je n'arrive a rien avec flash. Vraiment l'implémentation xml est mal foutu.

    j'essaye de faire la requete xPath suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */PRODUCTS/PRODUCT[*/*/@id='MARQUE-185']
    Car en faite ce sont les noeud product que je veux récupéré et non les noeud ID_MARQUE. J'ai testé la requête avec différent débuggueur Xpath, et elle marche très bien. Alors Pourquoi dna s ce de flash elle ne marche pas?
    ---
    "Rien n'est impossible"
    http://journaldeguillaume.blogspot.com

Discussions similaires

  1. [Stage] Recherche PFE dans le domaine des Systèmes et Réseaux
    Par Titi41 dans le forum Demandes
    Réponses: 0
    Dernier message: 09/09/2010, 17h24
  2. [StAX] Problème underscore dans le nom des noeuds XML avec stax/xstream
    Par mandarindi dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 19/08/2010, 09h51
  3. Réponses: 8
    Dernier message: 12/11/2007, 10h16
  4. [C#-XML] Récupérer les valeurs des noeuds enfants
    Par cyllix dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/06/2006, 11h54
  5. Réponses: 1
    Dernier message: 17/05/2006, 16h32

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