Description
The functx:copy-attributes function copies attributes from the element in $copyFrom to the element in $copyTo . It leaves all the original attributes and content of $copyTo , except that if $copyTo already has an attribute with the same name of one of $copyFrom 's attributes, its value is updated to match $copyFrom .
Arguments and Return TypeName | Type | Description |
$copyTo |
element() |
the element to copy attributes to |
$copyFrom |
element() |
the element to copy attributes from |
return value |
element() |
XSLT Function DeclarationSee XQuery definition. | <xsl:function name="functx:copy-attributes" as="element()"
xmlns:functx="http://www.functx.com">
<xsl:param name="copyTo" as="element()"/>
<xsl:param name="copyFrom" as="element()"/>
<xsl:element name="{node-name($copyTo)}">
<xsl:sequence select="
($copyTo/@*[not(node-name(.) = $copyFrom/@*/node-name(.))],
$copyFrom/@*,
$copyTo/node())"/>
</xsl:element>
</xsl:function>
|
Examples<xsl:variable name="in-xml" as="item()*"> | | <in-xml>
<a>123</a>>
<b x="1" y="2">456</b>
<c x="9">123</c>
<d z="5">123</d>
</in-xml> |
| </xsl:variable> |
XPath Example | Results |
---|
functx:copy-attributes(
$in-xml/a, $in-xml/b) |
<a x="1" y="2">123</a> |
functx:copy-attributes(
$in-xml/b, $in-xml/c) |
<b x="9" y="2">456</b> |
functx:copy-attributes(
$in-xml/d, $in-xml/c) |
<d z="5" x="9">123</d> |
See AlsoHistory |
Recommended Reading:
|