xsl-list
[Top] [All Lists]

Re: how to insert the *complete* content of a node

2003-03-21 07:27:23
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