Élément <xsl:copy-of>
Insère des sous-arborescences et des fragments de l'arborescence résultat dans l'arborescence résultat.
<xsl:copy-of
select = Expression />
Attributs
- select
Obligatoire. Expressions XPath identifiant les nœuds à copier. La sous-arborescence sous chacun de ces nœuds est copiée entièrement vers l'arborescence résultat.
Informations sur l'élément
Nombre d'occurrences |
Illimité |
Éléments parents |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, éléments de sortie |
Éléments enfants |
(Pas d'éléments enfants) |
Notes
Lorsque le résultat de l'évaluation de l'expression est un fragment d'arborescence résultat, la totalité du fragment est copiée vers l'arborescence résultat. Lorsque le résultat est une collection de nœuds, tous les nœuds de la collection sont copiés, dans l'ordre du document, vers l'arborescence résultat. La copie d'un nœud d'élément copie les nœuds d'attributs, les nœuds d'espaces de noms et les enfants du nœud d'élément, ainsi que le nœud d'élément lui-même. Un nœud racine est copié par la copie de ses enfants. Lorsque le résultat n'est ni une collection de nœuds ni un fragment d'arborescence résultat, le résultat est converti en une chaîne et inséré dans l'arborescence résultat, comme avec <xsl:value-of>
.
Exemple
Cet exemple de fichier XSLT fonctionne par rapport à l'exemple de fichier XML pour rechercher un élément <person>
avec des éléments <given-name>
et <family-name>
enfants. Le paragraphe contient le premier élément <given-name>
enfant du nœud actuel, y compris tous les attributs et éléments enfants, suivis d'un espace et du premier élément <family-name>
enfant, y compris tous les attributs et éléments enfants, du nœud actuel.
Fichier XML (family.xml)
Fichier XSLT (family.xsl)
Sortie
Voici les données en sortie formatées :
Fred Freddy Smith
Robert Bob Smith
Voici les données en sortie du processeur ; des sauts de ligne ont été ajoutés pour plus de clarté.
<?xml version="1.0"?>
<p><given-name age="10">
<name>Fred</name>
<nick-name>Freddy</nick-name>
</given-name>
<family-name>Smith</family-name></p>
<p><given-name age="10">
<name>Robert</name>
<nick-name>Bob</nick-name>
</given-name>
<family-name>Smith</family-name></p>