Re: [xsl] Passing empty parameters discard parameters default value

Subject: Re: [xsl] 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
> 
>

Current Thread