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] sélection d'un noeud par un test sur son frère


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 57
    Points
    57
    Par défaut [XPath] sélection d'un noeud par un test sur son frère
    Bonjour à tous,

    voici l'exemple du schéma:

    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
    <BALISE1>
        <BAL Type="A" Link="1">
            <Offre Type="B" Name="CFCR1" Value="027F"/>
            <Offre Type="A" Name="XXX" Value="0280"/>
        </BAL>
        <BAL Type="A" Link="2">
            <Offre Type="B" Name="CFCR1" Value="0281"/>
            <Offre Type="A" Name="ZFR" Value="0282"/>
        </BAL>
        <BAL Type="A" Link="3">
            <Offre Type="B" Name="CFCR1" Value="0283" />
            <Offre Type="A" Name="EHT" Value="0284" />
        </BAL>
        <BAL Type="A" Link="1">
            <Offre Type="B" Name="CFCR2" Value="0288"/>
            <Offre Type="A" Name="D2F" Value="0289" />
        </BAL>
        <BAL Type="A" Link="2">
            <Offre Type="B" Name="CFCR2" Value="028A" />
            <Offre Type="A" Name="KSL" Value="028B" />
        </BAL>
        <BAL Type="A" Link="3">
            <Offre Type="B" Name="CFCR2" Value="028C" />
            <Offre Type="A" Name="AZE" Value="028D" />
        </BAL>
        <BAL Type="A" Link="1">
            <Offre Type="B" Name="CFCR3" Value="0" />
            <Offre Type="A" Name="UJD" Value="0" />
        </BAL>
    </BALISE1>
    On me demande de récupère la valeur NAME="ZFR", en sachant que je sais que la balise <BAL> est de type "A" et de Lien 2, que la balise <OFFRE> est de type B et son name vaut CFCR1, je dois récupère la valeur Name contenue dans la balise BAL TYPE de type A soit Name="ZFR"

    Des idées pour m'aider SVP....

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Vu que c'est assez basique je te conseille de jeter d'abord un oeil sur ce tuto
    http://jerome.developpez.com/xmlxsl/xpath/
    pour ce qui est de la sélection par des valeur on utilise des crochets comme dans l'exemple 6.
    Si l'exemple 6 se focalise sur les attributs on peut le faire avec n'importe quel noeud.

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Pour le reste c'est toujours les accolades
    chemin_ xpath_balise_parent_global[suite_chemin_xpath_fils_particulier_avec_test]\suite_chemin_fils_dont_on_veut_la_valeur

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Erwy Voir le message
    Pour le reste c'est toujours les accolades
    chemin_ xpath_balise_parent_global[suite_chemin_xpath_fils_particulier_avec_test]\suite_chemin_fils_dont_on_veut_la_valeur
    Oui, moi je veux bien, mais si je suis ton raisonnement j'obtiens
    BALISE1/BAL[@Type='A'][@Link='2']/Offre[@Type='A'] n'est ce pas... et là j'ai plusieurs résultats possibles !!! Il faut que je précise aussi qu'il me faut dans un noeud Offre type='B' et name='CFCR1'

    Et là je vois pas comment faire !!!!

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par jpbelmondo59 Voir le message
    BALISE1/BAL[@Type='A'][@Link='2']/Offre[@Type='A'] n'est ce pas
    non tu as oublié

    [suite_chemin_xpath_fils_particulier_avec_test]
    du style:

    BALISE1/BAL[@Type='A' and @Link='2' and Offre[@Type='...' and ....]]/Offre[@Type='A']

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Erwy Voir le message
    non tu as oublié


    du style:

    BALISE1/BAL[@Type='A' and @Link='2' and Offre[@Type='...' and ....]]/Offre[@Type='A']
    OK

    Un grand grand merci à Toi !!!

  7. #7
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    L'important c'est surtout d'apprendre à lire le chemin pour faire un xpath

    Un changement de "direction" = / + axe de direction (parent,fils,attribut...)

    un test = [...]

    Un test peut porter :
    - Soit sur une valeur
    - Soit sur l'existence d'un noeud via son xpath (c'est le cas ici)
    - Soit sur la valeur d'un autre noeud (xpath+test de comparaison)
    - Soit sur une comparaison entre un noeud et un ensemble de valeur de noeud (xpath+test de comparaison)
    - Soit sur une comparaison entre ensembles de valeur de noeud (2 xpath+test de comparaison)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2009, 12h41
  2. [XPATH] Position d'un noeud par rapport à la racine ?
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/10/2008, 18h51
  3. [XPATH] sélection multiple de noeuds en même temps
    Par ely85 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 03/02/2008, 21h01
  4. [XPath] Sélection d'un noeud fils du noeud courant
    Par hobotalker dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2007, 15h55
  5. [Xpath] Sélection des noeuds dont un attribut
    Par toxine dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 29/01/2007, 14h22

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