Subject: RE: [xsl] an expression to check if a parameter is a non-zero number - comments From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 31 Oct 2003 10:54:14 -0000 |
> > 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. Yes, I was wrong. NaN!=0 is true. Wendell's test is better. Michael Kay > > <?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 > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] an expression to check if, SANWAL, ABHISHEK (HP | Thread | RE: [xsl] Re: Re: Re: Converting sp, Sindigi, Ganesh K |
RE: [xsl] Problem using document fu, Michael Kay | Date | RE: [xsl] Question on <xsl:apply-te, Michael Kay |
Month |