[xsl] xsl 2.0 recursive functions and return value

Subject: [xsl] xsl 2.0 recursive functions and return value
From: Joern Nettingsmeier <nettings@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 26 Feb 2006 18:32:49 +0100
hi everyone!

i'm trying to write a branching recursive function, but i have a problem with the "xsl:sequence" being non-terminating.

how can i get the following to work:

<xsl:function name="r2c:hasTextContent" as="xs:boolean"> <xsl:param name="node"/> <xsl:for-each select="$node/*"> <xsl:choose> <!--ignore!--> <xsl:when test="r2c:isOutputNode(.)"/> <!--gotcha!--> <xsl:when test="r2c:isLeafNode(.)"> <xsl:value-of select="true()"/> </xsl:when> <xsl:otherwise> <!-- recurse into the current node --> <xsl:sequence select="r2c:hasTextContent(.)"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> <!-- no leafNodes found?:--> <xsl:sequence select="false()"/> </xsl:function>

this will inevitably put more than one boolean into my output sequence, which will cause an error.

iiuc, either i need a re-settable variable (which xsl does not have), or a way to terminate the function after each xsl:sequence. i found references to xsl:result, but it seems to have gone the way of the dodo...

any hints?


jC6rn nettingsmeier

home://germany/45128 essen/lortzingstr. 11/

if you are a free (as in "free speech") software developer
and you happen to be travelling near my home, drop me a line
and come round for a free (as in "free beer") beer. :-D

Current Thread