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] Vérifier si un node enfant existe sur un autre noeud


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
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut [XSLT] Vérifier si un node enfant existe sur un autre noeud
    Bonjour,

    Soit le xml suivant :
    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
    <page>
    <currentData>
    <offers>
        <myCategory>
    		<offerCode1>
    			...
    		</offerCode1>
    	</myCategory>
    	...
    </offers>
    <order>
    	<productsList>
    		<order>
    			<offerCode1>
    				...
    			</offerCode1>
    			...
    		</order>
    	</productsList>
    </order>
    </currentData>
    </page>
    Je suis dans un template (XSL 1.0) où j'affiche tous les produits disponibles avec un for-each sur /page/currentData/offers/myCategory/*.
    Chaque produit s'affiche avec une checkbox.

    J'aimerais cocher cette checkbox si le code produit (ex: offerCode1) est un enfant de /page/currentData/order/productsList/order.

    Je ne peux pas concaténer un chemin et une variable pour faire un test.
    J'ai tenté avec un call template en match sur /page/currentData/order/productsList/order et en passant en paramètre le code du produit en cours dans le for-each.

    Aucun succès.

    Une idée ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut
    Trouvé, je fais un test sur :
    /page/currentData/order/productsList/order/*[local-name(.) = $productName]

    où $productName contient le code de mon produit.

  3. #3
    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,

    pourrais tu nous faire passer ton code XSLT ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut
    Merci mais c'est réglé, voici néanmoins mon xsl simplifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:template name="offersList">
    	<xsl:for-each select="currentData/offers/myCategory/*">
    	<xsl:sort select="local-name()"/>
    		<input value="1" type="checkbox">
    			<xsl:attribute name="name"><xsl:value-of select="local-name()"/></xsl:attribute>
    			<xsl:variable name="productName"><xsl:value-of select="local-name()"/></xsl:variable>
    			<xsl:if test="/page/currentData/order and /page/currentData/order/productsList/order/*[local-name(.) = $productName]">
    				<xsl:attribute name="checked">checked</xsl:attribute>
    			</xsl:if>
    		</input>
    	</xsl:for-each>
    </xsl:template>

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

Discussions similaires

  1. Treeview afficher un Chekbox sur un node et pas sur un autre
    Par Pascal 999 dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/12/2010, 12h17
  2. Réponses: 2
    Dernier message: 07/07/2010, 12h24
  3. Vérifier si un fichier existe sur une machine distante
    Par tukutt dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 10/06/2008, 11h49
  4. [Débutante][Xslt] vérifier l'existence d'un attribut
    Par sab_etudianteBTS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/03/2008, 16h12
  5. Tester si un couple de champs existe sur une autre table
    Par jerjerrod dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/02/2007, 18h02

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