Re: xsl:for-each within an element?

Subject: Re: xsl:for-each within an element?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 27 Aug 1999 17:34:22 +0100 (BST)
> But this way I have to write each iteration explicitly, to cover as many
> as 20 'thing' occurrences when there are usually far less than that.
> This seems like a job for xsl:for-each, but each time I try, XT reminds
> me that element substrings aren't node-sets.  All ideas appreciated, and
> apologies if I'm missing something obvious.

Loops are evil. Recursion is your friend.

David

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/XSL/Transform/1.0";
  result-ns="">


<xsl:template match="field">
<xsl:call-template name="split">
  <xsl:with-param name="text" select="."/>
</xsl:call-template>
</xsl:template>


<xsl:template name="split">
<xsl:param  name="text" select="''"/>

<xsl:choose>
<xsl:when test="contains($text,';')">
 <field>
  <xsl:value-of select="substring-before($text,';')"/>
 </field>
<xsl:call-template name="split">
  <xsl:with-param name="text" select="substring-after($text,';')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
 <field>
<xsl:value-of select="$text"/>
 </field>
</xsl:otherwise>
</xsl:choose>

</xsl:template>

</xsl:stylesheet>


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


Current Thread