xsl-list
[Top] [All Lists]

Re: [xsl] can a value of a parameter depends on a other value

2011-12-01 10:06:23
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>