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 :

[XSLT] recherche de noeud


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [XSLT] recherche de noeud
    Bonjour à tous,

    je débute avec XSL alors il est possible que ma question vous paraisse futile. Cependant en cherchant dans les tutoriaux je n'ai pas réussi à trouver la solution à mon problème.

    J'ai un document de cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <doc>
       <typeA>
          <code>toto</code>
          <code>titi></code>
       </typeA>
       <typeB>
          <code>tata</code>
       </typeB>
       ...
    </doc>
    Les éléments "typeA" et "typeB" sont répétables 1 à n fois chacun.
    A l'intérieur de ces éléments, il peut y avoir 1 à n éléments "code".

    Mon problème:
    à l'intérieur d'une boucle (xsl:for-each) parcourant tout les éléments "typeA", il faudrait que je puisse trouver (select) le ou les éléments "typeB" ayant une correspondance exacte au niveau des éléments "code", c'est à dire que cet élément "typeB" doit avoir les même sous-éléments "code" que le noeud "typeA" sur lequel je me trouve, ni plus ni moins.
    C'est à dire que si je me trouve sur le noeud "typeA" suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       <typeA>
          <code>toto</code>
          <code>titi></code>
       </typeA>
    Je dois trouver le noeud "typeB" ressemblant à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       <typeB>
          <code>toto</code>
          <code>titi></code>
       </typeB>
    Avez vous une idée de comment je peux m'y prendre ?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    bon déjà un conseil: en xslt on évite les for-each et on préfère les templates.
    sinon ton problème est assez simple je crois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:for-each select="//typeA/code">
    <xsl:variable name="tutu"><xsl:value-of select="."/></xsl:variable>
    <xs:value-of select="//typeB[/code=$tutu]"/>
    </xsl:for-each>
    en gros tu utilises un xpath qui te retourne tout les typeB contenant un code ayant la valeur de ta variable tutu
    est-ce cela que tu souhaites?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse, mais si j'ai bien compris le code que tu me proposes il ne me permet pas de résoudre ton problème: avec ton code (si je ne me trompe pas) je vais récupérer tous les "typeB" qui ont un code en commun avec mon "typeA". Or ce que je cherche, c'est récupérer les "typeB" qui ont exactement les mêmes codes que mon "typeA" (le même nombre de codes et les mêmes valeurs).

  4. #4
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    ok tu as raison je n'avais pas compris ton problème (qui est plus complexe)
    je cherche et je reviens vers toi si je trouve

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ne t'embête pas j'ai finalement contourné le problème et suis passé par une autre solution, merci quand même!

Discussions similaires

  1. [XSLT] Recherche de noeud
    Par Laughing Man dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/09/2009, 15h25
  2. [XSLT] rechercher un noeud depuis le noeud courant
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 21/12/2005, 18h47
  3. [XSLT] Test égalité noeuds différents
    Par bruno782 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 24/10/2005, 20h58
  4. [XSLT] remplacement de noeuds de manière récursive
    Par daniel_r dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/10/2005, 20h13
  5. [XSLT] enfants du noeud racine
    Par CandS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/08/2005, 09h45

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