Re: using default params?

Subject: Re: using default params?
From: "Nikolai Grigoriev" <grig@xxxxxxx>
Date: Tue, 28 Mar 2000 23:28:05 +0400
> 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


Current Thread