[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: position() > 1 not working
Needs to be: <xsl:if test="position() gt 1" /> with gt instead of > as the operator. On Fri, Mar 5, 2021, 20:37 Martin Honnen martin.honnen@xxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > On 05.03.2021 20:22, Michele R Combs mrrothen@xxxxxxx 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.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|