[
Lists Home |
Date Index |
Thread Index
]
Dear All,
I suspect that this is a really easy problem, but I am having a problem
getting my head around the problem.
I have two attributes each with multiple values like x;y;z and a;b.
I want to output every possible permutation of each of these attributes, for
example xa,ya,za,xb,yb,zb
So I need to recurse within the recursive algorithmn, but almost every thing
I try doesn't work.
Does anyone clever with recursion have some advice.
thanks
kent
Here is some code I tried.
<xsl:call-template name="returnStringBeforeX">
<xsl:with-param name="myStringA" select="x;y;z"/>
<xsl:with-param name="myStringB" select="a;b"/>
</xsl:call-template>
<xsl:template name="returnStringBeforeX">
<xsl:param name="myStringA"/>
<xsl:param name="myStringB"/>
<xsl:choose>
<!-- This rule fires when threre is something after
;, what is on the left is ready so we output this result -->
<xsl:when test="substring-after($myStringA, ';')
!='' ">
<xsl:value-of select="substring-before($myStringA,
';')"/>
<xsl:value-of select="substring-before($myStringB,
';')"/>
<!-- We have not finished recursing so we
call the funktion again -->
<xsl:call-template
name="returnStringBeforeX">
<xsl:with-param name="myStringA"
select="substring-after($myStringA, ';')"/>
<xsl:with-param name="myStringB"
select="substring-after($myStringB, ';')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- We have finished recursing so we output what is
ready -->
<xsl:value-of select="$myStringA"/>
<xsl:value-of select="$myStringB"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
|