<xsl:copy-of> |
Diese Anweisung kopiert etwas in den Ergebnisbaum. Das Attribut select definiert den zu kopierenden Inhalt. Identifiziert das Attribut select das Fragment eines Ergebnisbaums, so wird das komplette Fragment in den Ergebnisbaum kopiert. Identifiziert das Attribut select eine Knotenmenge, werden alle Knoten dieser Knotenmenge in den Ergebnisbaum kopiert, und zwar in der Dokumentreihenfolge. (Im Gegensatz zur Anweisung <xsl:copy>, mit der der Knoten in seiner Gesamtheit kopiert wird, einschließlich der vorhandenen Namensraumknoten, Attributknoten und untergeordneten Knoten.) Identifiziert das Attribut select etwas anderes als ein Ergebnisbaumfragment oder eine Knotenmenge, wird es in einen String konvertiert und in den Ergebnisbaum eingefügt.
Kategorie
Anweisung
Obligatorische Attribute
select Dieses Attribut enthält einen XPath-Ausdruck, der die Knoten definiert, die ins Ausgabedokument kopiert werden sollen.
Optionale Attribute
Keine
Inhalt
Keiner. <xsl:copy-of> ist ein leeres Element.
Übergeordnetes Element
<xsl:copy-of> erscheint innerhalb einer Vorlage.
Definition
XSLT-Abschnitt 11.3, Benutzen von Variablen- und Parameterwerten mit xsl:copy-of
Beispiel
Die Funktionsweise von <xsl:copy-of> wird anhand eines einfachen Stylesheet veranschaulicht, welches das Eingabedokument in den Ergebnisbaum kopiert. Hier das Stylesheet:
    <?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:copy-of select="."/>
      </xsl:template>

    </xsl:stylesheet>
Dieses Stylesheet wird mit dem folgenden Dokument getestet:
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Wenn das XML-Dokument transformiert wird, sind die Ergebnisse dem Eingabedokument auffallend ähnlich:
    <?xml version="1.0" encoding="UTF-8"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Der einzige Unterschied zwischen den beiden Dokumenten besteht darin, dass die Stylesheet-Engine die XML-Deklaration um das Kodierungsattribut encoding erweitert hat. Vergleichen Sie dies mit dem Beispiel zum Element <xsl:copy>.