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 - comparer le premier enfant au noeud parent


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut XPath - comparer le premier enfant au noeud parent
    bonjour, voilà je me casse la tête pour trouver une solution à mon problème mais sans succès :

    J'ai un xml de ce type :
    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
    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
     
    	<fo:inline font-family="Arial, sans-serif" font-size="10pt">
    		<fo:leader lang="7">blde la patate</fo:leader>
    		<fo:inline font-weight="bold">Nom : </fo:inline>
    		<fo:inline lang="2">B</fo:inline>
    		<fo:leader>29.99</fo:leader>
    		<fo:inline lang="3" font-weight="bold">C</fo:inline>
    	</fo:inline>
     
    	<fo:inline font-family="Arial, sans-serif" font-size="10pt">
    		<fo:inline lang="4">Learning XML</fo:inline>
    		<fo:inline lang="4">Learning XML</fo:inline>
    	</fo:inline> 
     
    	<fo:inline font-family="Arial, sans-serif" font-size="10pt">
    		<fo:inline lang="4">Learning XML</fo:inline>
    		<fo:leader>39.95</fo:leader>détails qui n'ont pas de noeud
    	</fo:inline> 
    </fo:block>
    En gros je voudrais sélectionner que le noeud du milieu dans le cas présent :

    Je veut sélectionner tous les inline du document qui contiennent au moins un noeud du même noeud à l'interrieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline[count(fo:inline)>=1]
    jusque la aucun souci, mais en plus de ça j'aurais besoin de les sélectionner que si le noeud inline ne contient pas des balises <leader>
    J'ai essayé quelquechose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline[count(fo:inline)>=1 and child::*!='fo:leader']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline[count(fo:inline)>=1 and ./node()!='fo:leader']
    mais je n'arrive pas a faire en sorte que celà marche

    si quelqu'un avais une idée elle serais appréciée, merci ^^

    EDIT : j'avais oublié, sur un fofo je suis tombé sur ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline/*[position() = 1] is same as parent/*[1]
    mais je ne comprend pas du tout

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline[count(fo:inline)>=1 and not(fo:leader)]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    humm merci, je vais essayer ça ^^

  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
    Petite rectification, je n'avais pas vu le =, on peut donc simplifier l'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //fo:inline[fo:inline and not(fo:leader)]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    nikel, ca marche comme voulu , j'ai été chercher tellement compliqué alors que c'était basique ^^

    je te remercie

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/04/2016, 18h36
  2. Recuperer les enfants d'un noeud parent dans un treeview
    Par skunkies dans le forum Windows Forms
    Réponses: 8
    Dernier message: 20/01/2009, 14h31
  3. [Xpath] Sélectionner les noeuds parents en fonctions des enfents
    Par xrcr9709 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/04/2008, 18h12
  4. [XPATH] Obtenir les noeuds parents
    Par ggptggpt dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/02/2008, 22h39
  5. Réponses: 4
    Dernier message: 01/06/2006, 14h58

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