xsl-list
[Top] [All Lists]

Re: accessing node by position

2004-05-21 02:41:00
On Wed, 19 May 2004 11:14:56 +0100, David Carlisle 
<davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:


 I need to access an xml value by it's position.
 can this be done (or is there a better way to do it)


to access the 3rd foo element just do 
foo[3]

 <xsl:value-of select="../../../columns/column(position())/type"/>

You need square brackets not round, and you want to evaluate position()
in the current node list _before_ you start this xpath as it's the
current position that you want, so


<xsl:variable name="x" select="position()"/>
<xsl:value-of select="../../../columns/column[$x]/type"/>

Of course for $x to have teh right value you need to make sure that your
current node list only has cell nodes, if you just do an
<xsl:apply-templates/>
rather than
<xsl:apply-templates select="cell"/>
on the row element then your current node list will include white space
text nodes and so the position of teh cell elements will be
2,4,6,... not 1,2,3,...

David

Perfect, thanks
        Vin

------------------------------------------------------------------------
vincent(_dot_)finn(_at_)automsoft(_dot_)com
------------------------------------------------------------------------
My opinions may have changed, but not the fact that I am right.
------------------------------------------------------------------------


<Prev in Thread] Current Thread [Next in Thread>