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] signification du apply-template


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [XSLT] signification du apply-template
    Bonjour à tous, je suis débutant en xslt et je n'ai pas tres bien saisi la notion d'apply-template.
    En gros, je me demande quelle est la difference entre:
    <xsl:template match="mabalise">
    ...
    </xsl:template match="mabalise">
    et
    <xsl:apply-template select="mabalise"/>

    De plus quel template applique le apply-template si on a plusieurs template définis dans notre document xslt ?
    J'ai cru egalement remarquer qu'il y a des "<xsl:apply-template select="mabalise"/>" alors qu'aucun template n'a été défini sur mabalise, dans ce cas la, quel template est appliqué?
    Merci

  2. #2
    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
    <xsl:template> correspond à la définition d'un template.

    <xsl:apply-templates> permet d'activer d'autres templates à l'intérieur d'un template. Sans paramètre, c'est pour les enfants directs du noeud courant qu'il y a recherche d'un template concordant.

    Lorsque plusieurs templates peuvent être activés pour un élément, il convient d'associer une priorité pour éviter que ce soit le moteur de transformation qui choisisse...

    Un template par défaut recopie les noeuds texte : c'est parfois pratique mais plutôt déroutant...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Quels autres templates, ceux définis auparavant?
    Merci en tout cas pour cette réponse

  4. #4
    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
    D'après la recommandation du W3C, c'est une erreur que d'avoir plus d'un template pour un même élément si tous ces templates sont de même précédence (par rapport à l'inclusion de feuille de style) et de même priorité.

    Il est signalé que seul le dernier devrait être activé si le processeur décide de passer outre...

    Il faut donc bien se méfier du comportement du processeur qui ne sera pas "standard" dans cette situation !
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  5. #5
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    pour avoir fait plusieurs test la notion de priorité sur un template ne fonctionne pas avec tout les processeurs

    l'ajout de <xsl:apply-template select="mabalise"/> permet d'appeler le template pour la balise "mabalise", si tu n'as pas définit de template alors celui par défaut fait simplement une copie du contenu.

    tu peux aussi parfois voir un truc du genre <xsl:template match="mabalise"/> qui veut simplement dire tu ne fais rien

Discussions similaires

  1. [XSLT] filtre sur apply-templates
    Par hjn31 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/09/2009, 10h43
  2. [XSLT] xsl:sort + apply-templates
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 04/10/2007, 17h52
  3. [XSLT] problème avec apply-templates
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/11/2006, 11h20
  4. [XSLT] Problème avec apply-templates
    Par NeoMan dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/12/2005, 14h45
  5. [XSLT] Différence entre apply-templates et call-template
    Par Cpt.FLAM dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/04/2005, 18h47

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