Subject: Re: Passing empty parameters discard parameters default value
From: Thijs Janssen <thijs.janssen@xxxxxxxxx>
Date: Wed, 16 Jun 2004 21:05:22 +0200
|
I'm sorry, I should've tested this *before* replying ;-)
Apparantly you cannot specify an <xsl:if> inside a call-template. The
only solution I can come up with this quickly is putting the entire
call-template call inside an <xsl:if> but thats not really a solution
if there's going to be more than one parameter.
On Wed, 16 Jun 2004 20:51:20 +0200, Thijs Janssen
<thijs.janssen@xxxxxxxxx> wrote:
>
> Hi Michal,
>
> The problem is that you ARE passing a parameter to mytemplate_impl. It
> might eventually be empty, but it still counts as a parameter, and
> thus no default value is used... (after all, one can imagine cases
> where passing an empty nodeset as a parameter has a semantical
> meaning)
>
> A possible work-around is:
>
> <xsl:template name="mytemplate">
> <xsl:param name="p"/>
> <xsl:call-template name="mytemplate_impl">
> // parameter is not passed if its empty
> <xsl:if test="$p">
> <xsl:with-param name="p" select="$p"/>
> </xsl:if>
> </xsl:call-template>
> </xsl:template>
>
> regards,
> Thijs Janssen
>
>
|