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

Re: [xsl] Less than symbol in xsl:if or xsl:when


Subject: Re: [xsl] Less than symbol in xsl:if or xsl:when
From: Sam Wilmott <sam@xxxxxxxxxx>
Date: Thu, 7 Oct 2010 22:26:16 -0400

On 2010-10-07, at 3:42 PM, sudheshna iyer wrote:

> The following stmt works, but when I replace > with <, it doesn't work. I am
> compiling with xmlspy with xslt1.0
> <xsl:when test="string-length($VAR1) > $VAR2">  => Works
>
> <xsl:when test="string-length($VAR1) < $VAR3">  => Doesn't work
>
> My main goal is to  check whether length of VAR2 is in between 2 numbers..
like
>
> string-length($VAR1) >= $VAR2and string-length($VAR1) <= $VAR3
>
> How do I achieve this?

If you're using XSLT 2.0 rather than XSLT 1.0, then a better way to do it is:

string-length($VAR1) ge $VAR2and string-length($VAR1) le $VAR3

XSLT 2.0 introduced the scalar operators eq, ne, lt, gt, le and ge, which
compare single values rather than lists, which is what XSLT 1.0 comparison
operators do.  They are therefore safer to use when you're comparing single
values and they don't run into syntactic difficulties.

Sam.
------------
Sam Wilmott
sam@xxxxxxxxxx


Current Thread
Keywords