xsl-list
[Top] [All Lists]

RE: [xsl] Coding aroung a "Cannot convert zero-length string to an integer" error

2007-08-13 07:58:01
That's my case exactly.  Thanks for the clarification. 


Thanks!
Angela 

-----Original Message-----
From: Andrew Welch [mailto:andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com] 
Sent: Monday, August 13, 2007 9:55 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Coding aroung a "Cannot convert zero-length string to
an integer" error

On 8/13/07, Angela Williams 
<Angela(_dot_)Williams(_at_)the401kcompany(_dot_)com> wrote:
I've found problems with using the not($stringIsEmpty) construct where

I get a false true result, I suspect due to the presence of a node-set

that is empty as opposed to an empty string.

That's probably because you haven't typed your parameters - if you pass
<foo> to a function that expects a string then <foo> gets converted into
a string, which is the same as not(xs:string(foo)).

If you pass <foo> to a function whose parameter is untyped the you have
not(foo) which is false for <foo/>

So basically always type your parameters - if you're expecting a string
that can be empty then you want:

<xsl:param name="foo" as="xs:string?"/>

...and then using test="not($foo)" should be fine.



I've found if (not(string-length($input-date) eq 0 ) to be much more 
reliable, if more verbose.  I'm using Saxon 8.9 and XSLT 2.0.

Are there other considerations for choosing one solution vs. the
other?

Apart from not needing to do it,  Mike Kay has suggested that
string-length is relatively expensive because of the need to sort out
surrogate pairs before counting characters.

cheers
andrew
--
http://andrewjwelch.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--