|
Subject: RE: [xsl] Coding around a "Cannot convert zero-length string to an integer" error From: cknell@xxxxxxxxxx Date: Mon, 13 Aug 2007 10:23:39 -0400 |
Very perceptive, you put your finger on it! I changed my code to use a slightly more compact version of your expression:
<xsl:function name="ck:excel-serial-date" as="xs:string?">
<xsl:param name="input-date" as="xs:string?"/>
<xsl:value-of select="if(not($input-date) or $input-date = '') then '' else xs:string(xs:integer(translate(xs:string(xs:date($input-date)-xs:date('1900-01-01')),'PD','')))"/>
</xsl:function>
--
Charles Knell
cknell@xxxxxxxxxx - email
-----Original Message-----
From: Houghton,Andrew <houghtoa@xxxxxxxx>
Sent: Mon, 13 Aug 2007 10:03:03 -0400
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: RE: [xsl] Coding aroung a "Cannot convert zero-length string to an integer" error
> From: cknell@xxxxxxxxxx [mailto:cknell@xxxxxxxxxx]
> Sent: 13 August, 2007 09:44
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Coding aroung a "Cannot convert zero-length
> string to an integer" error
>
> <xsl:function name="ck:excel-serial-date" as="xs:string?">
> <xsl:param name="input-date" as="xs:string?"/>
> <xsl:value-of select="if($input-date = '') then '' else
> xs:string(xs:integer(translate(xs:string(xs:date($input-date)-
> xs:date('1900-01-01')),'PD','')))"/>
> </xsl:function>
>
> I thought that this fragment "if($input-date = '') then ''
> ..." would short-circuit any attempt to convert a zero-length
> string to an integer, but apparently I have misapprehended
> something key here. Can anyone point out where I've gone
> wrong and suggest a fix?
I think the issue is that an empty string is not the same as a
non-existent node. You might need to change the test to:
if(not(exists($input-date)) or normalize-space($input-date) = '')
although you might be able to shorten it to:
if (normalize-space($input-date) = '')
Andy.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Coding aroung a "Cannot c, Andrew Welch | Thread | RE: [xsl] Coding aroung a "Cannot c, Angela Williams |
| Re: [xsl] Coding aroung a "Cannot c, Andrew Welch | Date | RE: [xsl] Coding aroung a "Cannot c, Angela Williams |
| Month |