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

XSL/XSLT/XPATH XML Discussion :

[XPATH] Besoin d'aide sur un path


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut [XPATH] Besoin d'aide sur un path
    Bonjour,
    supposons le fichier xml suivant :

    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
     
    <root>
       <File name="nom1">
           <TECHSET type ="max">
              <TECH id='id1' value="32"/>
              <TECH id='id2' value="Coucou"/>
              <TECH id='id3' value="23.2657"/>
           </TECHSET>
           <TECHSET type="min">
              <TECH id='id1' value="10"/>
              <TECH id='id2' value="Coucou"/>
              <TECH id='id3' value="21.2657"/>
          </TECHSET>
       </File>
     
       <File name='nom2'>
     
           <TECHSET type ="max">
              <TECH id='id1' value="56"/>
              <TECH id='id2' value="Hello"/>
              <TECH id='id3' value="29.2657"/>
           </TECHSET>
           <TECHSET type="min">
              <TECH id='id1' value="30"/>
              <TECH id='id2' value="Hello"/>
              <TECH id='id3' value="11.2657"/>
           </TECHSET>
      </File>
    </root>

    Avec un nombre de TECH potentiellement infinie, et un nombre de File potentiellement infinie.

    Je voudrais récupérer tous les noeuds Files, dont les TECH répondent à certain critères.

    Par exemple, que pour id = id1, value doit inferieur à 40, et que pour id=id2, value doit être égale à Hello.

    Mais je ne vois pas du comment faire.
    Je pensais à quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //File[//TECH[@id='id1' & value<40] & //TECH[@id='id2' & value='Hello']]
    Mais si cette expression compile bien, le résultat n'est par contre pas le bon.
    Auriez vous une idée de comment résoudre ceci ?

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,
    & n'est pas un opérateur XPath valide et value, comme id, est un attribut, il faut donc spécifier l'axe attribute (avec @).
    Une expression possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //File[TECHSET/TECH[@id='id1']/@value < 40 and TECHSET/TECH[@id='id2']/@value = 'Hello']

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    *rentre de courte vacance*
    Merci bien pour ta réponse.

    En effet, j'avais zappé le @ pour value ^^
    J'ai testé ton expression, et ca me semble tout bon merci beaucoup.
    Je ne comprend pas très bien l'expression par contre.

    Dans la partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TECHSET/TECH[@id='id1']/@value <40
    Comment marche exactement le /@value < 40 ?

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Cette partie renvoie un booléen. Elle renverra True s'il existe parmi tous les attributs value sélectionnés par l'expression TECHSET/TECH[@id='id1']/@value au moins 1 qui soit inférieur à 40.

Discussions similaires

  1. [SimpleXML] besoin d'aide sur une expression xpath
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 11/05/2007, 10h23
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 16h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

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