This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: using default params?
- To: <xsl-list at mulberrytech dot com>
- Subject: Re: using default params?
- From: "Nikolai Grigoriev" <grig at iitp dot ru>
- Date: Tue, 28 Mar 2000 23:28:05 +0400
- References: <m3ln33nezr.fsf@britten.schlund.de>
- Reply-To: xsl-list at mulberrytech dot com
> But I don't want to always give the full set of attributes, but
> instead have my xsl respect default values.
>
> ...
>
> So I tried to do some stupid and nonworking tricks with xsl:call-template:
>
> <xsl:template match="foo">
> <xsl:call-template name="foo_pr">
> <xsl:with-param name="col1" select="@col1"/>
> <xsl:with-param name="col2" select="@col2"/>
> <xsl:with-param name="col3" select="@col3"/>
> </xsl:call-template>
> </xsl:template>
You got very close. Try to modify your with-param calls
like this:
<xsl:with-param name="col1">
<xsl:choose>
<xsl:when test="@col1">
<xsl:value-of select="@col1"/>
</xsl:when>
<xsl:otherwise>#FFFFFF<xsl:otherwise>
</xsl:choose>
</xsl:with-param>
For readability's sake, you may find it useful to store
the color in a variable:
<xsl:template match="foo">
<xsl:variable name="expanded-col1">
<xsl:choose>
<xsl:when test="@col1">
<xsl:value-of select="@col1"/>
</xsl:when>
<xsl:otherwise>#FFFFFF<xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- [same for $expanded-col2 and $expanded-col3 - skipped] -->
<xsl:call-template name="foo_pr">
<xsl:with-param name="col1" select="$expanded-col1"/>
<xsl:with-param name="col2" select="$expanded-col2"/>
<xsl:with-param name="col3" select="$expanded-col3"/>
</xsl:call-template>
</xsl:template>
Regards,
Nikolai
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list