11.07.2015 Views

Référence XPath/XSLT - IA

Référence XPath/XSLT - IA

Référence XPath/XSLT - IA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

xsl:call-templateSyntaxe() ∗DescriptionL’élément xsl:call-template permet d’appeler une règle par son nom. Il est utile dès qu’unfragment doit être instancié à plusieurs endroits d’un programme. Pour éviter des répétitions, on peutplacer ce fragment dans une règle, et appeler cette règle avec xsl:call-template. Le ou les élémentsxsl:with-param peuvent être utilisés pour passer des paramètres à la règle : voir page 37.La fonctionnalité apportée par cet élément s’apparente à un appel de fonction dans un langage deprogrammation classique. Il faut noter cependant qu’il n’y a pas de valeur retournée, ni de modificationdes « arguments » définis par xsl:with-param. Une des manières de contourner ces restrictions estd’inclure l’appel à xsl:call-template dans un élément xsl:variable : voir page 36.ExemplesVoir la section consacrée aux règles nommées, page ??, pour des exemples.xsl:chooseSyntaxe() +()?DescriptionCet élément est associé à xsl:when et xsl:otherwise pour créer l’équivalent des structures detest que l’on trouve habituellement dans les langages de programmation (if-then-else ou switch).Son contenu est une liste d’éléments xsl:when (au moins un), chacun étant associé à un test, et chacunayant un contenu sous forme de corps de règle. Le premier élément xsl:when pour lequel le test s’évalueà true voit son corps de règle instancié. Les éléments qui suivent sont alors ignorés. Si aucun xsl:whenne s’évalue à true, le contenu de l’élément xsl:otherwise, s’il existe, est instancié.ExemplesVoici un document représentant (très synthétiquement) le présent livre.Exemple .9 XBook.xml : Une description du livrePublication web avec XML/<strong>XSLT</strong>Editions O’Reilly FranceBernd AmannCnam8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!