This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Jumping out a loop


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@entier-solutions.com]
Sent: 18 April 2001 11:03 AM
To: xsl-list@lists.mulberrytech.com
Subject: [xsl]Jumping out a loop


I have the following loop:

<xsl:for-each select="Grasslands/*[position()&gt;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"/>;&#xA;<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"/>&#xA;
<xsl:value-of select="Year"/>;&#xA;</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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]