Subject: Re: how to insert the *complete* content of a node
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Fri, 21 Mar 2003 14:27:23 +0000
|
Hi Robert,
>> Use <xsl:copy-of> and select all the children of the <mytag>
>> element using the node() node test (which matches any node,
>> including elements and attributes):
>>
>> <xsl:copy-of select="mytag/node()" />
>>
>> <xsl:copy-of> gives you an exact copy of the nodes.
>
> uh oh ... i'm confused again. i thought "node()" explicitly
> did *not* match attribute nodes, but only
The node test "node()" matches attribute nodes, but the child axis
can only select the node types that you mention:
> 1) elements
> 2) text
> 3) comments
> 4) processing instructions
When you do:
<xsl:copy-of select="mytag/node()" />
this is expanded to:
<xsl:copy-of select="child::mytag/child::node()" />
and you get the child nodes (which cannot include attributes since
attributes aren't children) of the child <mytag> element of the
context node.
You can tell that the node() node test matches attributes because the
expression ".", which expands to the expression "self::node()", can be
used to select attributes. Unlike the child axis, the self axis
selects the context node no matter what its type.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|