Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Inserts subtrees and result-tree fragments into the result tree.
Syntax
<xsl:copy-of select = expression /> |
Attributes
- select
-
[required] XPath expression identifying nodes to be copied. The subtree below each of these nodes is copied to the result tree in its entirety.
Element Information
Number of occurrences |
Unlimited |
Parent elements |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:for-each, xsl:if, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, output elements |
Child elements |
(No child elements) |
Remarks
When the result of evaluating the expression is a result-tree fragment, the complete fragment is copied into the result tree. When the result is a node-set, all the nodes in the set are copied in document order into the result tree; copying an element node copies the attribute nodes, name space nodes, and children of the element node as well as the element node itself. A root node is copied by copying its children. When the result is neither a node-set nor a result-tree fragment, the result is converted to a string and then inserted into the result tree, as with <xsl:value-of>.
Example
Given this XML,
Copy Code | |
---|---|
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="family.xsl"?> <family> <person> <given-name age="10"> <name>James</name> <nick-name>Jim</nick-name> </given-name> <family-name>Fine</family-name> </person> ... </family> |
the following transform finds a person element with "given-name" and "family-name" children elements. The paragraph will contain the first "given-name" child element of the current node, including any attributes and child elements, followed by a space and the first "family-name" child element, including any attributes and child elements, of the current node.
Copy Code | |
---|---|
<xsl:template match="person"> <p> <xsl:copy-of select="given-name"/> <xsl:text> </xsl:text> <xsl:copy-of select="family-name"/> </p> </xsl:template> |
The generated HTML is as follows:
Copy Code | |
---|---|
<?xml version="1.0" encoding="UTF-16"?> <p> <given-name age="10"> <name>James</name> <nick-name>Jim</nick-name> </given-name> <family-name>Fine</family-name> </p> |