all groups > dotnet xml > may 2005 >
You're in the

dotnet xml

group:

For-each or recursion in XSLT



For-each or recursion in XSLT Oleg Konovalov
5/14/2005 12:00:00 AM
dotnet xml: Hi,

I am new to XSLT, modifying somebody else's code:

I have the following data (leaves in parallel branches):
mystruct/myarray1[i]/myvar/var2 and
mystruct/myarray2[i]/myvar/var3

I need to implement the find the first occurence of :
<xsl:if test="position() != last() and
number(var2) = number(var2[position()+1]) and
number(var3) = number(var3[position()+1])">
<value-of select="position()">
</xsl:if>

A few questions to XSLT gurus:
1) Does it make sense to do in the for-each loop or it will require a
recursion ?
All I need is to get the position of the 1st occurrence.
How would that recursion look like?

2) Will I be able to get a node from the parallel branch in for-each loop ?
Something like:
<xsl:for-each mystruct/myarray1[i]/myvar>
<xsl:if test=" ...and number(../../myarray2[i]/myvar/var3) =
number((../../myarray2[i]/myvar/var3)[position()+1]) and...">
<value-of select="position()">
</xsl:if>
</xsl:for-each>)
I know it looks awful :-(

3) Is there a way to somehow start the for-each loop
from position other than 1 ?
Like with j>1:
<xsl:for-each mystruct/myarray1[i]/myvar[j]>
.....
</xsl:for-each>

I am using XSLT 1.x

Thank you in advance,
Oleg.

Re: For-each or recursion in XSLT Danny
6/3/2005 7:02:56 PM

I don't think you've worded your query well and concise enough, all I can
tell is that you want to iterate some nodes using XSL but not using the
1st node in the as the starting point or so.

Danny

On Fri, 13 May 2005 20:06:58 -0700, Oleg Konovalov <olegkon@yahoo.com>
[quoted text, click to view]



--
AddThis Social Bookmark Button