Subject: Re: [xsl] xsl 2.0 recursive functions and return value From: Joern Nettingsmeier <nettings@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 26 Feb 2006 21:53:53 +0100 |
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>
Use xsl:sequence here! xsl:value-of creates a text node. You're converting a boolean to a string, wrapping the string in a text node, then because an xs:boolean is required, the text node is atomized, and the string "true" is converted back to a boolean.
Try:
<xsl:function name="r2c:hasTextContent()" as="xs:boolean"> <xsl:param name="node" as="node()"/> <xsl:sequence select="some $x in $node/*[not(r2c:isOutputNode(.)] satisfies (r2c.isLeafNode($x) or r2c.hasTextContent($x))"/> </xsl:function>
-- jvrn nettingsmeier
home://germany/45128 essen/lortzingstr. 11/ http://spunk.dnsalias.org phone://+49/201/491621
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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl 2.0 recursive functio, Frans Englich | Thread | [xsl] Sort of footnote nodes, proce, Trevor Nicholls |
Re: [xsl] xsl 2.0 recursive functio, Frans Englich | Date | RE: [xsl] Problems with mixed conte, Tony Kinnis |
Month |