[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Is a node a first/last child?

Subject: Re: Is a node a first/last child?
From: Joerg Pietschmann <joerg.pietschmann@xxxxxx>
Date: Thu, 26 Jul 2001 10:07:33 +0200
xsl last child
> From: Nadia Karasawa <nadia@xxxxxxxxxxxxxxx>
> 
> I need to know if the current node is the first or the last child of his 
> parent.

In order to clarify the answers you already got:

If list of the children is the context list, the most easy, fastest and
most readable solutions ought to be to use position(), as in the following
example:

  <xsl:template match="parent_element">
     <xsl:for-each select="node()">
        <xsl:if test="position()=1">
           First node of parent_element
        </xsl:if>
        <xsl:if test="position()=last()">
           Last node of parent_element
        </xsl:if>
     </xsl:for-each>
  <xsl:template>

If you have an arbitrary context, you'll have to stick to the
code Dimitre gave you (slightly optimized here :)

  <xsl:template match="/">
     <xsl:for-each select="key('random-key','some key value')>
        <xsl:if test="preceding-sibling::node()">
           First node of parent
        </xsl:if>
        <xsl:if test="following-sibling::node()">
           Last node of parent
        </xsl:if>
     </xsl:for-each>
  <xsl:template>

Note that preceding-sibling::node() also matches whitespace only text
nodes, so don't be surprised if the output omit some nodes which are
"clearly" the first/last child... Use a xsl:strip-whitespace or replace
node() in the code above by * if you deal with elements only.

Regards
J.Pietschmann

--

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.