This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: choose - when problem
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] choose - when problem
- From: Mike Brown <mike at skew dot org>
- Date: Sun, 11 Feb 2001 17:09:20 -0700 (MST)
- Reply-To: xsl-list at lists dot mulberrytech dot com
Jo Kong HO wrote:
> Having a little problem with choose - when. I having trying to test wether
> a node is having the value of "True" or "False".
>
> Given the following xslt segment, and I know the selected node value is
> "True". The following test seems to returns false.
>
> <xsl:choose>
> <xsl:when test=".='True'">
> Y
> </xsl:when>
> <xsl:otherwise>
> N
> </xsl:otherwise>
> </xsl:choose>
This looks fine, so the problem is either:
- the current node is not the one you think it is; or
- the string value of the current node really isn't 'True'
(caused by whitespace around the string, or more descendant text
nodes);
For example, if the current node is the element 'foo' below...
<foo>
True
</foo>
...then its string value is (using \n to represent newline chars for
readability here.. use in your code):
\nTrue\n
...so you would want test for "normalize-space(.) = 'True'".
Second, if the current node is element 'foo' and you have something like
<foo>
True
<bar>Hi!</bar>
<baz>123</baz>
</foo>
...then the string value is
\n True\n Hi!\n 123\n
And finally, if your example is not accurate and you are actually testing
something like
<xsl:when test="/path/to/some/nodes = 'True'">
or
<xsl:variable name="some_nodes" select="/path/to/some/nodes"/>
<xsl:when test="$some_nodes = 'True'">
...then the test will succeed as long as *any* of the 'nodes' elements
have the string value 'True'.
- Mike
____________________________________________________________________
Mike J. Brown, software engineer at My XML/XSL resources:
webb.net in Denver, Colorado, USA http://skew.org/xml/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list