xsl:copy-of
est une copie exacte de l'élément XML d'entrée identifié. Aucun traitement xslt n'a lieu et la sortie de cet élément sera exactement la même que l'entrée.
xsl:apply-templates
indique au moteur xslt de traiter les modèles qui correspondent aux éléments sélectionnés. xsl:apply-templates
est ce qui donne à xslt sa capacité de remplacement, puisque les modèles que vous créez avec des éléments de correspondance peuvent avoir des priorités différentes, et le modèle ayant la plus haute priorité sera exécuté.
entrée:
<a>
<b>asdf</b>
<b title="asdf">asdf</b>
</a>
Xslt 1:
<xsl:stylesheet ... >
<xsl:template match="a">
<xsl:copy-of select="b" />
</xsl:template>
</xsl:stylesheet>
sortie XML 1:
<b>asdf</b>
<b title="asdf">asdf</b>
Xslt 2:
<xsl:stylesheet ... >
<xsl:template match="a">
<xsl:apply-templates select="b" />
</xsl:template>
<xsl:template match="b" priority="0">
<b><xsl:value-of select="." /></b>
<c><xsl:value-of select="." /></c>
</xsl:template>
<xsl:template match="b[@title='asdf']" priority="1">
<b title="{@title}"><xsl:value-of select="@title" /></b>
</xsl:template>
</xsl:stylesheet>
sortie XML 2:
<b>asdf</b>
<c>asdf</c>
<b title="asdf">asdf</b>