On 01/12/2011 15:51, Roelof Wobben wrote:
Hello,
I did some investigation and found this script.
<xsl:variable name="foo">
<xsl:choose>
<xsl:when test="condition1">
...value if condition1 is true
</xsl:when>
<xsl:otherwise>
...value if condition1 is not true
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates select="/foo/bar">
<xsl:with-param name="foo" select="$foo"/>
</xsl:apply-templates>
Is this a good example of a condtional with-param ?
well working is good;-)
as always, if you only use a variable once can (but don't have to)
inline the definition, so here the global variable $foo is only used
once so you could equivalently go
<xsl:apply-templates select="/foo/bar">
<xsl:with-param name="foo">
<xsl:choose>
<xsl:when test="condition1">
...value if condition1 is true
</xsl:when>
<xsl:otherwise>
...value if condition1 is not true
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
But it probably compiles to more or less the same thing.
One of the nice features of side-effect free languages is that the
compiler has a lot of freedom to re-arrange the code, if you use the
same subterm multiple times the compiler can reuse the value,
effectively implictly making a variable, conversely if you only use a
variable once it can inline the definition, effectively removing the
variable.
So use of variables or not often just amounts to personal coding style
aesthetics.
dDavid
--
google plus: https:/profiles.google.com/d.p.carlisle
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--