[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: Variable Scope and xsl:if


Subject: Re: Variable Scope and xsl:if
From: David_Marston@xxxxxxxxx
Date: Tue, 18 Apr 2000 12:07:34 -0400

Perhaps you could re-arrange the whole situation.

Omar Lopez Ruiz sent this:
<xsl:template matches="whatever">
  <xsl:if test="something=true">
        <some xsl tags and xsl:call templates>
        <xsl:variable name="foo" select="true">
  </xsl:if>
  <xsl:if test="something=false">
        <some other xsl tags>
        <xsl:variable name="foo" select="false">
  </xsl:if>
  <xsl:value-of select="$foo"/>    <!-- There's no foo var!!-->
</xsl:template>

It could be changed to:
<xsl:template matches="whatever">
  <xsl:variable name="foo" select="something"/>
  <xsl:choose>
    <xsl:when test="$foo">    <!-- Assumed to be
       faster than re-evaluating the "something" expression -->
      <some xsl tags and xsl:call templates>
    </xsl:when>
    <xsl:otherwise>
      <some other xsl tags>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

By the way, notice that
  <xsl:if test="something=true">
is equivalent to
  <xsl:if test="something">
and if you're unsure of whether "something" is suitably
boolean, you could say
  <xsl:if test="boolean(something)">
for your own peace of mind.
.................David Marston


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords
xsl