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] Test égalité noeuds différents


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut [XSLT] Test égalité noeuds différents
    Bonjour,

    j'aurais besoin de votre aide..

    j'ai mon xml (raccourci)..

    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
    <graphe>
    	<concept>
    		<nom_conc>Personne</nom_conc>
    		<instance>Jacques</instance>
    		<reference>d</reference>
    		<x>10</x>
    		<y>50</y>
    	</concept>
    	<relation>
    		<nom_rel>agent</nom_rel>
    		<entree>
    			<reference>c</reference>
    		</entree>
    		<sortie>
    			<reference>d</reference>
    		</sortie>
    		<x>200</x>
    		<y>50</y>
    	</relation>
    </graphe>
    et lorsque je suis dans "relation/entree" ou "relation/sortie" je voudrais pouvoir recuperer les coordonnées x et y de ma référence dans "concept".

    Par ex : dans relation/sortie/reference nous avons d.. je vais dans concept je trouve que d a x=10 et y= 50

    ce qui me pose problème c'est en étant dans un noeud de pouvoir recuperer des valeurs dans un autre endroit de mon arbre sans quitter l'endroit ou je suis...

    j'ai essayé en faisant des if.. etc.. mais rien ne marche

    Merci d'avance,

    Bruno

  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,

    langage ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    oups detail important en effet.. c'est en xsl que je veux faire ma récupération!

    <xsl:template match="relation">

    ...

    </xsl:template>

  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
    les <concept> se trouvent-ils tous dans le même <graphe> que les <relation> ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    oui j'ai dans mon graphe une liste de concept et ensuite une liste de relations..

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Pour faire celà, il faut d'abord stocker la valeur de ta reference dans une variable (que j'ai nommé ici reference_sortie)
    Ensuite seulement tu remontes dans ton arborescence et tu indiques dans ton path que tu veux lire la valeur de x ou y correpondant à cette reference. Tu peux faire ça avec des path en relatifs comme je l'ai fait (../../concept[reference=$reference_sortie]/x) ou avec des paths en absolu si tu préféres(/graphe/concept[reference=$reference_sortie]/x )

    Voici donc le XSL :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/graphe">
    	<xsl:for-each select="relation/sortie">
    		<xsl:element name="reference_sortie">
    			<xsl:variable name="reference_sortie">
    				<xsl:value-of select="reference"/>
    			</xsl:variable>
    			<xsl:variable name="x_sortie">
    				<xsl:value-of select="../../concept[reference=$reference_sortie]/x"/>
    			</xsl:variable>
    			<xsl:element name="x">
    				<xsl:value-of select="$x_sortie"/>
    			</xsl:element>
    			<xsl:variable name="y_sortie">
    				<xsl:value-of select="../../concept[reference=$reference_sortie]/y"/>
    			</xsl:variable>
    			<xsl:element name="y">
    				<xsl:value-of select="$y_sortie"/>	
    			</xsl:element>
    		</xsl:element>
    	</xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    Il ne reste plus qu'à faire la même chose avec les references d'entrée

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup!! ca marche niquel!!

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

Discussions similaires

  1. [XSLT] somme d'attributs dans des noeud différents
    Par ze_pat dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/12/2009, 13h58
  2. [XSLT] test présence d'un noeud ou pas
    Par bluehige dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 04/06/2009, 16h21
  3. Réponses: 2
    Dernier message: 27/09/2007, 14h04
  4. xslt --> test sur les chiffres
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/09/2005, 13h17
  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