<xsl:template> | |
Définit un modèle de sortie. Pour les modèles situés au début de <xsl:template match="x", le modèle définit une transformation pour un élément donné. Les modèles situés au début de <xsl:template name="x" définissent un ensemble d'éléments de sortie qui sont traités chaque fois que le modèle est invoqué. Tous les éléments <xsl:template> doivent avoir soit l'attribut match, soit l'attribut name de défini. Même si ce cas est rare, il est également possible de créer des éléments <xsl:template> possédant à la fois un attribut match et un attribut name. | |
Catégorie | |
Elément de niveau supérieur |
|
Attributs obligatoires | |
Aucun. |
|
Attributs facultatifs | |
|
|
Contenu | |
Un modèle XSLT. |
|
Apparaît dans | |
<xsl:stylesheet>. L'élément <xsl:template> est un élément de niveau supérieur qui ne peut apparaître que sous forme d'enfant de l'élément <xsl:stylesheet>. |
|
Défini dans | |
XSLT section 5.3, Définition des règles de modèle. |
|
Exemple | |
Le modèle utilisé copie tous les nœuds du document d'entrée dans le document de sortie, à une importante différence près : tous les attributs du document original sont convertis en éléments enfants dans le document de sortie. Le nom de chaque élément généré correspond au nom de l'attribut original, et le texte de chaque élément correspond à la valeur de l'attribut. La feuille de style est la suivante : <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:element name="{name()}"> <xsl:for-each select="@*"> <xsl:element name="{name()}"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> <xsl:apply-templates select="*|text()"/> </xsl:element> </xsl:template> </xsl:stylesheet> La feuille de style contient un élément <xsl:template> unique qui transforme chaque nœud dans le document original. La feuille de style est appliquée au document XML suivant pour le transformer : <?xml version="1.0"?> <report> <title>Miles Flown in 2001</title> <month sequence="01"> <miles-flown>12379</miles-flown> <miles-earned>35215</miles-earned> </month> <month sequence="02"> <miles-flown>32857</miles-flown> <miles-earned>92731</miles-earned> </month> <month sequence="03"> <miles-flown>19920</miles-flown> <miles-earned>76725</miles-earned> </month> <month sequence="04"> <miles-flown>18903</miles-flown> <miles-earned>31781</miles-earned> </month> </report> Les résultats de la transformation sont les suivants : <?xml version="1.0" encoding="UTF-8"?> <report> <title>Miles Flown in 2001</title> <month><sequence>01</sequence> <miles-flown>12379</miles-flown> <miles-earned>35215</miles-earned> </month> <month><sequence>02</sequence> <miles-flown>32857</miles-flown> <miles-earned>92731</miles-earned> </month> <month><sequence>03</sequence> <miles-flown>19920</miles-flown> <miles-earned>76725</miles-earned> </month> <month><sequence>04</sequence> <miles-flown>18903</miles-flown> <miles-earned>31781</miles-earned> </month> </report> |