RE: [xsl] select all elements except root

Subject: RE: [xsl] select all elements except root
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Thu, 21 Mar 2002 17:37:38 -0000
> I am a novice user.
> I am using <xsl:template match="*"> tag to iterate through
> all my elements
> which includes root element also.

Actually <xsl:template> does not iterate through anything. It matches
things, provided there is an <xsl:apply-templates/> that is iterating
through them. To avoid matching the outermost element, one simple approach
is to avoid selecting it:

<xsl:template match="/">
  <xsl:apply-templates select="*/*"/>
</xsl:template>

Another approach is to match it with a different template rule of higher
priority:

<xsl:template match="/*"/>

> But I don't want to select root element.

We're all assuming that by "root element" you mean the outermost element
node. Terminology is treacherous here: the XML spec calls this the "root or
document element", but neither of the terms "root element" or "document
element" is used in the XPath model, and the "root" is something different -
it is the node that represents the document itself, which is the parent of
the outermost element node.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread