Subject: Re: [xsl] format-number() issue From: Michael Kay <mike@xxxxxxxxxxxx> Date: Fri, 16 Aug 2013 20:59:35 +0100 |
To convert a string to a number, you need to do an explicit conversion. The result of lower-case() and of substring() is a string, which cannot be implicitly converted to a number. Implicit conversion works if you supply an untyped node, but not if you supply a string. Michael Kay Saxonica On 16 Aug 2013, at 15:11, Nathan Tallman wrote: > I'm trying to use format-number like this: > > <xsl:variable name="unitid" select="lower-case(/ead/archdesc/did/unitid)"/> > <xsl:variable name="number" select="substring($unitid, 3)" /> > <xsl:value-of select="format-number($number, '0000')"/> > > I've seen many examples online of using a variable in the first spot > with format-number, but I keep getting a validation error, "Required > item type of first argument of format-number() is numeric; supplied > value has item type xs:string." > > I've tried sticking as="xs:integer" in <xsl:variable name="number"> > and adding the xs namespace, but then I get this error, "Required item > type of value of variable $number is xs:integer; supplied value has > item type xs:string". I can't make $unitid an integer, as it has alpha > characters in it (which I remove in $number). > > Can someone point out my errors or give me a hint? > > Thanks, > Nathan
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] format-number() issue, G. Ken Holman | Thread | [xsl] The site exslt.org has been d, steve.majewski@xxxxx |
Re: [xsl] format-number() issue, Nathan Tallman | Date | [xsl] The site exslt.org has been d, steve.majewski@xxxxx |
Month |