Partager via


É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)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="family.xsl"?>
<family>
  <person>
    <given-name age="10">
      <name>Fred</name>
      <nick-name>Freddy</nick-name>
    </given-name>
    <family-name>Smith</family-name>
  </person>
  <person>
    <given-name age="10">
      <name>Robert</name>
      <nick-name>Bob</nick-name>
    </given-name>
    <family-name>Smith</family-name>
  </person>
</family>

Fichier XSLT (family.xsl)

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="person">
  <p>
    <xsl:copy-of select="given-name"/>
    <xsl:text> </xsl:text>
    <xsl:copy-of select="family-name"/>
  </p>
</xsl:template>

</xsl:stylesheet>

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>

Voir aussi

Référence

Élément <xsl:value-of>