xsl-list
[Top] [All Lists]

Re: [xsl] position() > 1 not working

2021-03-05 13:41:02
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(_dot_)honnen(_at_)gmx(_dot_)de <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

On 05.03.2021 20:22, Michele R Combs mrrothen(_at_)syr(_dot_)edu 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/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>