Re: [xsl] an expression to check if a parameter is a non-zero number - comments

Subject: Re: [xsl] an expression to check if a parameter is a non-zero number - comments
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 30 Oct 2003 14:09:02 -0500
Abhishek,

At 01:33 PM 10/30/2003, you wrote:
<xsl:when
test="true(string-length(translate($ImageWidth,'0123456789.','')) = 0
and $ImageWidth != 0)">

I want to check if the incoming parameter ImageWidth is a non-zero
number.

I am wondering it the above expression would work?

Take it out of the spurious true() function, and it should, but....


(There is a function true() but it doesn't take any arguments, it simply returns the Boolean value "true").

Is there a better way to do that checking ?

Try test="number($ImageWidth)"


If $ImageWidth is a number, it'll test as true unless its value is 0.

If $ImageWidth is a string, it'll be turned into a number by the number() function, and test as true unless it is 0 or NaN ("not-a-number").

If $ImageWidth is a node-set, the first node in it will be converted into a string, and test as above. Same if it's a result-tree-fragment.

If $ImageWidth is a Boolean, it'll be true if it's true, false if not.

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


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



Current Thread