RE: [xsl] choose - when problem

Subject: RE: [xsl] choose - when problem
From: Jo Kong HO <JoK@xxxxxxxxxxxxxx>
Date: Mon, 12 Feb 2001 09:34:08 -0000
Thank Mike, It was the space that was playing trick.


-----Original Message-----
From: Mike Brown [mailto:mike@xxxxxxxx]
Sent: 12 February 2001 00:09
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] choose - when problem

Jo Kong HO wrote:
> Having a little problem with choose - when.  I having trying to test
> 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

For example, if the current node is the element 'foo' below...


...then its string value is (using \n to represent newline chars for
readability here.. use &#10; in your code):

	\nTrue\n you would want test for "normalize-space(.) = 'True'".

Second, if the current node is element 'foo' and you have something like


...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'">


	<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: in Denver, Colorado, USA    

 XSL-List info and archive:

 XSL-List info and archive:

Current Thread