Subject: RE: [xsl] an expression to check if a parameter is a non-zero number - comments From: "SANWAL, ABHISHEK (HP-Houston)" <abhishek.sanwal@xxxxxx> Date: Thu, 30 Oct 2003 15:13:56 -0600 |
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.sanwal@xxxxxx -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Wendell Piez Sent: Thursday, October 30, 2003 1:09 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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@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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Question on <xsl:apply-te, Wendell Piez | Thread | RE: [xsl] an expression to check if, Michael Kay |
[xsl] Question on <xsl:apply-templa, Robert Ogden | Date | Re: [xsl] Question on <xsl:apply-te, David Carlisle |
Month |