Thanks.
That works perfectly.
test="number($ImageWidth)" <- perfect
test="number($ImageWidth)!=0" <- tried it but apparently it did not
satisfy the cases I needed.
e.g. When the value was 100mm the second test did not work as it should.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<xsl:variable name="ImageWidth">100mm</xsl:variable>
<xsl:comment>before</xsl:comment>
<xsl:if
test="number($ImageWidth)"><xsl:value-of
select="$ImageWidth"></xsl:value-of></xsl:if>
<xsl:comment>after</xsl:comment>
<xsl:comment>before</xsl:comment>
<xsl:if
test="number($ImageWidth)!=0"><xsl:value-of
select="$ImageWidth"></xsl:value-of></xsl:if>
<xsl:comment>after</xsl:comment>
</xsl:template>
</xsl:stylesheet>
Abhishek Sanwal
HP - Houston Campus
abhishek(_dot_)sanwal(_at_)hp(_dot_)com
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Wendell Piez
Sent: Thursday, October 30, 2003 1:09 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] an expression to check if a parameter is a non-zero
number - comments
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(_at_)mulberrytech(_dot_)com
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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list