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 :

Liste de noeuds sans utiliser XSLT, seulement XPATH


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Invité
    Invité(e)
    Par défaut Liste de noeuds sans utiliser XSLT, seulement XPATH
    Voici un extrait d'une reservation par internet
    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
     
    <Reservations>
        <Sejours>
            <Sejour Nom="truc">
                <ServiceIDXs>
                    <ServiceIDX>1</ServiceIDX>
                </ServiceIDXs>
            </Sejour>
            <Sejour Nom="jpppaps">
                <ServiceIDXs>
                    <ServiceIDX>1</ServiceIDX>
                    <ServiceIDX>3</ServiceIDX>
                </ServiceIDXs>
            </Sejour>
            <Sejour Nom="machin">
                <ServiceIDXs>
                    <ServiceIDX>1</ServiceIDX>
                    <ServiceIDX>2</ServiceIDX>
                    <ServiceIDX>3</ServiceIDX>
                </ServiceIDXs>
            </Sejour>
        </Sejours>
        <Services>
            <Service IDX="1" Nom="Services_Un"/>
            <Service IDX="2" Nom="Services_Deux"/>
            <Service IDX="3" Nom="Services_Trois"/>
            <Service IDX="4" Nom="Services_Quatre"/>
        </Services>
    </Reservations>
    J'aimerai recupérer a travers 1 requete XPATH tout les "Nom" des "Services" d'un "Sejour".

    Du Sejour d'attribut "Nom" égal jpppaps par exemple.

    Si je peut eviter d'utiliser XSLT, ca serait bien.

    Merci

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Je ne pense pas que ce soit faisable en une seule requête car XPath ne permet pas d'utiliser la valeur d'un noeud intermédiaire pour la comparer à une autre.

    Ce n'est pourtant pas difficile en deux requêtes : une pour trouver tous les ServiceIDX d'un Sejour puis une en boucle pour récupérer le Nom en fonction de l'IDX. Ce sera assurément plus efficace qu'une transformation XSL-T

  3. #3
    Membre émérite
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /Reservations/Services/Service[@IDX=.//ServiceIDX]/@Nom
    mais je pense pas que cela fonctionne si tu as plusieurs IDX

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour vos conseil

    Ceci semble possible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /Reservations/Services/Service[@IDX=/Reservations/Sejours/Sejour[@Nom='jpppaps']/ServiceIDXs/ServiceIDX/text()]/@Nom
    Dernière modification par Invité ; 10/01/2008 à 09h46.

  5. #5
    Invité
    Invité(e)
    Par défaut
    La requete que j'ai ecrite dans le dernier message fonctionne !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer liste sans utiliser un curseur
    Par widom dans le forum Développement
    Réponses: 3
    Dernier message: 04/02/2009, 17h43
  2. [XPATH] Compter noeud sans enfant
    Par nounours21_6 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/03/2008, 13h46
  3. [XSLT] comment recopier le contenu d'un noeud sans ses fils
    Par st0ne dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/09/2007, 11h05
  4. Réponses: 1
    Dernier message: 26/06/2007, 12h30
  5. Test sur le noeud frère suivant (XSLT, XPath)
    Par rprom1 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/02/2006, 16h04

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