Re: position() > 1 not working

"Martin Honnen [email protected]" <[email protected]> Fri, 5 Mar 2021 19:37:46 -0000
Newsgroups gmane.text.xml.xsl.general.mulberrytech
Organization Liberty Development
Message-ID <[email protected]>
On 05.03.2021 20:22, Michele R Combs [email protected] wrote:

> Ah.  Ok, so if I understand correctly, I need to change the variable
> assignment to grab the position of the <DATA> element within the parent
> <ROW>, rather than within the for-each?  How would I do that?


I think what David tries to say is that you want e.g.
   ../../fmp:COL[3]/fmp:DATA[$parent-position + 1]
instead of
   ../../fmp:COL[3]/fmp:DATA[$parent-position]

(and the same for the other values.)

Or you would need to use
   ../../fmp:COL[3]/fmp:DATA[position() >  1][$parent-position]
   ../../fmp:COL[4]/fmp:DATA[position() >  1][$parent-position]
   ../../fmp:COL[5]/fmp:DATA[position() >  1][$parent-position]
and so on to work in the same range your for-each works with.



> there are 4 DATA children so
>
> <xsl:for-each select="fmp:COL[3]/fmp:DATA[position() > 1]">
>
> selects the 2nd, 3rd and  4th
>
> the scope of that position() is just that step of the xpath, within the
> body of the for-each, position() counts the selected items
>
> so as there are three items selected position() as stored in
> $parent-position  will have values 1,2,3 which is one less than you
> expected.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--