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] Appliquer un template avec une condition


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Points : 55
    Points
    55
    Par défaut [XSLT] Appliquer un template avec une condition
    Bonjour,
    J'aurai voulu savoir si en XSL il était possible d'appliquer un template sur un noeud xml avec un condition.
    Exemple : j'ai ce ficier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <personne>
    <nom>unNom</nom>
    <prenom>unPrénom</prenom>
    </personne>
    <personne>
    <nom>unDeuxiemeNom</nom>
    <prenom>unDeuxiemePrenom</prenom>
    </personne>
    je veux appliquer un template sur le noeud personne si le noeud nom veut unNom.
    Est Possible en XSL ?

    Merci pour votre aide !!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    bonjour,
    voici une proposition

    <xsl:apply-templates select="PERSONNE[NOM='UnNom']">
    </xsl:apply-templates>

    en ayant défini un template bien sur

    <xsl:template match="PERSONNE[NOM='UnNom']">
    </xsl:template>

    si cela vous intéresse, j'ai un ensemble XML/XSL qui fonctionne (c'est un trombinoscope avec des critères de tri (par nom, prénom, organigramme ou fonction) en gérant deux statuts (les personnes présentes et celles absentes).

    bon courage !

  3. #3
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Il n'est pas toujours indispensable de mettre la condition deux fois : apply-templates select="" correspond à l'appel des templates pour les éléments sélectionnés tandis que template match="" correspond à la définition d'un template pour le ou les éléments correspondants.

    S'il n'y a pas d'autres templates pour l'élément PERSONNE et s'il n'y a aucun appel aux templates par défaut, une seule fois la condition suffira.
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Merci pour votre aide

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

Discussions similaires

  1. [XSLT]Trouver un noeud avec une condition sur ses sous-noeuds
    Par enguerran dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2007, 11h00
  2. Problème avec une condition
    Par ghan77 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/12/2005, 16h18
  3. Réponses: 3
    Dernier message: 24/10/2005, 13h47
  4. Problème de requête avec une condition IN
    Par sorcer1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h56
  5. envoyer submit avec une condition !
    Par delphinote dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/07/2005, 15h52

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