Re: <xsl:variable> behavior

Subject: Re: <xsl:variable> behavior
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 11 Nov 1999 10:41:02 -0500
At 99/11/10 20:34 -0500, Clark C. Evans wrote:

<xsl:template match="/">
  <xsl:variable name="x">
    <xsl:choose>
      <xsl:when test="false()">X</xsl:when>
    </xsl:choose>
  </xsl:variable>
  <xsl:if test="$x">x</xsl:if>
</xsl:template>

This (unexpectedly) prints "x"

Perhaps because you were thinking of testing on the string value of the end result of interpreting the result tree template, not the result tree template itself which is what you are asking above.


The following seems to work just fine:

<xsl:template match="/">
  <xsl:variable name="x">
    <xsl:choose>
      <xsl:when test="false()">X</xsl:when>
    </xsl:choose>
  </xsl:variable>
  <xsl:if test="string($x)">x</xsl:if>
</xsl:template>

I hope this helps.

.................. Ken

--
G. Ken Holman                    mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.             http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
Web site: XSL/XML/DSSSL/SGML services, training, libraries, products.
Practical Transformation Using XSLT and XPath      ISBN 1-894049-02-0
Next instructor-led training:              1999-12-05/06, 1999-12-07,
-                            2000-02-27/28, 2000-05-11/12, 2000-05-15


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



Current Thread