Bonjour, je découvre xsl et je ne comprends pas la différence entre call template et apply-templates.
Quelqu'un peut-il m'éclairer ?
En vous remerciant
Bonjour, je découvre xsl et je ne comprends pas la différence entre call template et apply-templates.
Quelqu'un peut-il m'éclairer ?
En vous remerciant
apply:applique la transformation (le code de la template correspondante) a toutes les balises qui sont selectionnés par le xpath contenu dans son attribut select.
call:ressemble a une procedure, effectue le code dans la template du nom appellé.
Dans les deux cas on peut passer des parametre mais on le fait plus generalement avec le call (xsl:with-param), permet ainsi de faire des traitements recrusif qui ne prennent pas par exemple de noeud en entré.
(faire un compteur qui incremente ou decremente j'usqu'a une certaines valeurs,faire un traitemnt un certains nombre de fois.....)
Donc le call sert souvent quand ce n'est pas le traitement d'un noeud qui est effectué.
Il y a de nombreuse autres differences, mais la je te conseille de consulter des livres ou des tutos c'est un peu long a expliquer
Tout d'abord merci de ta réponse
Ce que je ne comprends pas c'est que dans un cas j'arrive a afficher le code décrit dans la template appelée et dans l'autre non ??
Ceci n'affiche rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <xsl:template match="tableau"> ..... <fo:block space-before.optimum="10pt"> <fo:inline font-weight="bold">Taux de cotisation</fo:inline> <xsl:apply-templates select="tableau"/> </fo:block>
alors que
affiche mon tableau decrit dans la tempalte tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xsl:template name="tableau"> .... <fo:block space-before.optimum="10pt"> <fo:inline font-weight="bold">Taux de cotisation</fo:inline> <xsl:call-template name="tableau"/> </fo:block>
Pourquoi une telle différence ,
le select est un chemin xpath(tu devrais lire les tutos sur le sujet).
http://jerome.developpez.com/xmlxsl/xpath/
le Template est appellé sur les noeuds xml selectionnés.
Si aucun noeud n'est selectionné le code ne s'applique pas
ok.
Comme j'ai "inventé" ma template tableau, il faut que je l'appelle avec "call"....
Merci de cet élément de réponse
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager