Elemento <xsl:copy-of>
Inserisce nell'albero risultato sottoalberi e frammenti di albero risultato.
<xsl:copy-of
select = Expression />
Attributi
- select
Obbligatorio. Espressioni (XSLT) XPath per identificare i nodi da copiare. Il sottoalbero al di sotto di ciascuno di tali nodi viene copiato completamente nell'albero risultante.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato |
Elementi padre |
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, elementi di output |
Elementi figlio |
(Nessun elemento figlio) |
Note
Se il risultato della valutazione dell'espressione è un frammento di albero risultato, nell'albero risultato viene copiato il frammento completo. Se il risultato è un set di nodi, tutti i nodi nel set vengono copiati nell'albero risultato in base all'ordine con cui sono riportati nel documento. Se si copia un nodo dell'elemento, vengono copiati i nodi Attribute, i nodi dello spazio dei nomi, gli elementi figlio del nodo dell'elemento e lo stesso nodo dell'elemento. Un nodo radice viene copiato copiandone i relativi elementi figlio. Se il risultato non è né un set di nodi né un frammento di albero risultato, il risultato viene convertito in una stringa e inserito nell'albero risultato, come quando si utilizza <xsl:value-of>.
Esempio
Questo file XSLT di esempio viene eseguito in base al file XML di esempio per individuare un elemento <person> con gli elementi figlio <given-name> e <family-name>. Il paragrafo conterrà il primo elemento figlio <given-name> del nodo corrente, inclusi eventuali attributi ed elementi figlio, seguito da uno spazio e dal primo elemento figlio <family-name>, inclusi eventuali attributi ed elementi figlio, del nodo corrente.
File 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>
File 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>
Output
L'output formattato è il seguente:
Fred Freddy Smith
Robert Bob Smith
Di seguito è indicato l'output del processore. Le interruzioni di riga sono state aggiunte per chiarezza.
<?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>