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

Re: Determining the position of a specific node in the

Subject: Re: Determining the position of a specific node in the context
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 20 Oct 2006 10:01:33 +0100
Re:  Determining the position of a specific node in the
> "Give me the position of a specific node in the context"

so long as by context you mean what the spec means, which is its
position in the current sequence (current node list in 1.0 terminology)
not its position in the input tree. position() never relates to teh
input tree at all, the same node will have diffeerent values of
position() depending on how it was selected, for example if it is
selected with self:: or parent:: it will have position()=1.


  <xsl:variable 
    name="p" 
    select="(node()[...predicate...]/position())[1]"/>
  
  with the [1] added to make it a singleton, and is equivalently still
  best written in XPath 1 as
  
  <xsl:variable 
    name="p" 
    select="count(node()[...predicate...][1]/preceding-sibling::node()) + 1"/>
  
they are not equivaent. The first one will always return 1 as the first
position in a sequence is always 1.

The second one returns the position in the sequence of child nodes of
teh selected predicate, if there is 1, and 0 otherwise. (Beware though
usually when doing thois sort of thing you want to use * rather than
node() otherwise you will be thrown off by indentation white space,
comments etc.

David

1

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.