RE: [xsl] runaway template application

Subject: RE: [xsl] runaway template application
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 11 Feb 2003 10:33:59 -0000
> >>|The problem I'm having is with the template where mode="group"
> >>specifically with select="following-sibling::node()"
> >>unfortunately, the application of this template keeps going until it
> >>reaches the end of the current set of siblings. ALL I WANT IT 
> >>TO DO AS 
> >>APPLY THE TEMPLATE FOR THE NEXT SIBLING and then stop.

As so often happens, I gave you the literal solution to the problem as
you stated it, which was to process the next sibling [node]. Jeni
correctly guessed that what you really wanted to do was to process the
next sibling element, ignoring any sibling text nodes.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 


> >>|
> >>
> >|
> >Then write select="following-sibling::node()[1]".|
> >
> |As it happens, when I have
> 
> <xsl:template match="context[position() mod 3 = 1]" mode="group"> <td>
>      <xsl:apply-templates select="." mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::node()[1]" 
> mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::node()[2]" 
> mode="leaf"/>
> </td>
> </xsl:template>
> 
> Then I only get the current node and the next node but not 
> the one after (as I expected). if I use
> 
> <xsl:template match="context[position() mod 3 = 1]" mode="group"> <td>
>      <xsl:apply-templates select="." mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::node()[2]" 
> mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::node()[3]" 
> mode="leaf"/>
> </td>
> </xsl:template>
> 
> I get exactly the same result. However, when I use
> 
> <xsl:template match="context[position() mod 3 = 1]" mode="group"> <td>
>      <xsl:apply-templates select="." mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::context[1]"
> mode="leaf"/>
>      <xsl:apply-templates select="following-sibling::context[2]"
> mode="leaf"/>
> </td>
> </xsl:template>
> 
> As suggested by Jeni, I get what I want.
> 
> |
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread