RE: [xsl] Break the For-each loop

Subject: RE: [xsl] Break the For-each loop
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 9 Sep 2005 12:21:53 +0100
xsl:for-each is a mapping, not a loop: it maps an input sequence to a result
sequence. It doesn't process the input elements in any particular order,
therefore the concept of "breaking out" doesn't make sense.

If you only want to process the elements up to the first apple, you first
need to select those elements. For example:

<xsl:for-each select="apple[1] | apple[1]/preceding-sibling::*)">
  ...
</xsl:for-each>

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Khorasani, Houman [mailto:houman_khorasani@xxxxxxxxxxxxxx] 
> Sent: 09 September 2005 10:36
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Break the For-each loop
> 
> Hello,
> 
> I would like to look after a specific XML tag (e.g. apple), which can
> occur several times.  I was thinking using a for-each loop and output
> the first found apple. But I would get in this case all the apples
> because of the for-each loop. So how do I break the loop after I have
> found the first apple?
> 
> Thanks
> Houman

Current Thread