Subject: RE: [xsl]Jumping out a loop From: Meltem Kogelbauer <meltem.kogelbauer@xxxxxxxxxxxxxxxxxx> Date: Wed, 18 Apr 2001 11:27:49 +0100 |
I have dealt with similar cases as the following. You cannot jump out of for-each rule. Once you are in you are in. If you want to apply style-A, say, for the first two children and style-B for the rest you can use two for-each loop selecting first two and the rest. If you want to apply style-C for two children positioned as, say, the third and the sixth children among the others, then best way would be applying a template to the children <xsl:template match="children"> <!--Children is grasslands in this case I believe--> <whatever-style><xsl:value-of select="." /></whatever-style> </xsl:template> When you call the template, call with the specific names <xsl:apply-templates select="//Grasslands[LinksForTheGenus]" /> <xsl:apply-templates select="//Grasslands[References]" /> This way you can add/delete children easily. Hope this will help. Meltem -----Original Message----- From: Tanzila Mohammad [mailto:tmohammad@xxxxxxxxxxxxxxxxxxxx] Sent: 18 April 2001 11:03 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl]Jumping out a loop I have the following loop: <xsl:for-each select="Grasslands/*[position()>3 and text()]"> <h3><font color="#00007f"><i><xsl:value-of select="name()"/></i></font></h3> <p><font color="#008000"><xsl:value-of select="."/></font></p> </xsl:for-each> I want to jump out the loop at two children and perform a different function for them: For the Links of Genus child: <h3><a NAME="Label0045"></a><font color="#00007F"><i>Links for the genus:</i></font></h3> <ul> <xsl:for-each select="Grasslands/LinksForTheGenus/Link"> <li><font color="#008000"> <xsl:value-of select="Address"/>;
<xsl:value-of select="Name"/> </font></li> </xsl:for-each> </ul> For The References child: <h3><a NAME="Label0045"></a><font color="#00007F"><i>References:</i></font></h3> <xsl:for-each select="Grasslands/References/Ref"> <font color="#008000"> <xsl:value-of select="Name"/>
 <xsl:value-of select="Year"/>;
</font> </xsl:for-each> References and Links for Genus are slightly different than all children of Grasslands, I figure I need some sort of 'if' statement maybe: <xsl:if test="Grasslands[LinksForTheGenus]"> do process <xsl:if test="Grasslands[References]"> do process Any suggestions. Tanz 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl]Jumping out a loop, Michael Kay | Thread | [no subject], Mengel Andre (FV/SLM |
[xsl]Jumping out a loop, Tanzila Mohammad | Date | Re: [xsl] xslt conformance tests, Daniel Veillard |
Month |