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 :

Même recherche pour 2 XPath différents? [XPATH 2.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 77
    Par défaut Même recherche pour 2 XPath différents?
    Bonjour,

    J'aimerais pouvoir faire 1 recherche qui fonctionnerait sur 2 XPaths différents.

    1er XPath recherché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div>
    <nobr>
    <span class="xxx">
    <span></span>
    </span>
    </nobr>
    </div>
    2ème XPath recherché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div>
    <span class="xxx">
    <span></span>
    </span>
    </div>
    Vous aurez compris qu'il n'y a qu'une "petite" différence dans le 1er XPath, qui est le "<nobr>".
    J'aimerais savoir s'il existe un moyen de mettre dans le XPath un élément "facultatif" du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .//.../div/*[@class="xxx"]/span[1]/text()
    Mais apparemment lorsque je fais ça, il ne prend pas en compte le "/nobr", juste ce qui se trouve entre le dernier "/" et "@class="xxx".

    Il y a-t-il une solution?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 77
    Par défaut
    Apparemment en utilisant "//*" ça fonctionne

  3. #3
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Devant le div, je n'en suis pas sure ce que c'est; à partir du div, vous pourriez faire ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div/descendant::*[@class='xxx']/span[1]/text()

  4. #4
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    XPath c'est le langage que tu utilise pour sélectionner des noeuds par exemples, et le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div>
    <nobr>
    <span class="xxx">
    <span></span>
    </span>
    </nobr>
    </div>
    c'est ton ensemble de noeuds.

    Du coup, je n'ai pas tout saisi : quel noeuds veux-tu sélectionner ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 77
    Par défaut
    Ici le problème n'était pas la sélection d'un noeud en particulier, c'était juste avoir la possibilité de "by passer" un noeud

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Il faut faire comme l'a dit tsuji, c'est plus propre (moins de risques de bugs) et moins coûteux en temps.

    Il y'a juste un bémol : tu cherchais un span fils d'un élément possédant l'attribut @class, ce qui n'est pas le cas de ton code HTML apparement.
    D'après ton code, il faut écrire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div/descendant::span[@class='xxx'][1]/text()

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 77
    Par défaut
    Merci bien!

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

Discussions similaires

  1. un méme XAML pour deux fiches différentes
    Par lila23 dans le forum Silverlight
    Réponses: 6
    Dernier message: 03/08/2011, 10h27
  2. Même contenu pour plusieurs tables différentes
    Par reitsab dans le forum WinDev
    Réponses: 7
    Dernier message: 04/12/2009, 10h36
  3. Mettre la même @IP pour 2 @MAC différentes
    Par croumir dans le forum Hardware
    Réponses: 2
    Dernier message: 16/10/2007, 15h11
  4. Réponses: 3
    Dernier message: 24/07/2006, 16h11
  5. Réponses: 4
    Dernier message: 07/03/2006, 15h54

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