RE: [xsl] Character from numeric code? double->integer cast?

Subject: RE: [xsl] Character from numeric code? double->integer cast?
From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx>
Date: Wed, 29 Jun 2005 08:53:08 +0100
> <xsl:variable name="cb"
> select="codepoints-to-string(number(substring('#CB00001', 4))
> + 983040)"/>
>
> This does not work, Saxon 8.1B complains that I am providing
> an xs:double, but the function codepoints-to-string wants a
> xs:integer. Now, how on earth do I get number() to give me an
> integer?  I have tried combinations using the "as" attribute,
> with an intermediate variable but then Saxon wonders about
> the namespace "xs:" .  It looks like I am missing something
> fundamental here, sigh.

Use xs:integer() instead of number() and add the namespace:

xmlns:xs="http://www.w3.org/2001/XMLSchema";

Your new variable definition should look like:

<xsl:variable name="cb"
select="codepoints-to-string(xs:integer(substring('#CB00001', 4)) +
983040)"/>
                                                     ^^^^^^^^^^

cheers
andrew

Current Thread