[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] How to check if a value is numeric and add 2500 to it?


Subject: Re: [xsl] How to check if a value is numeric and add 2500 to it?
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Mon, 05 Apr 2010 14:09:03 +0200

Ben Stover wrote:
Assume I have a XML doc which might contain an optional tag with a numeric value similar to

<ns1:aaa>345</ns1:aaa>

Now I want to check with a XSLT expression:
- if this optional <ns1:aaa> tag exists at all

- if it exists then it should be checked if the value is numeric (leading and trainling blanks should be ignored. integer and floating numbers should both be acceptable

- If the value is numeric then 2500 (resp. 2500.00) should be added

How can I implement this logic in XSLT?

Do you use XSLT 1.0 or 2.0?
If it is 2.0 then you should decide which one of the numeric types you want to check for e.g. for xsd:decimal
<xsl:if test="ns1:aaa and normalize-space(ns1:aaa) castable as xsd:decimal">
<xsl:value-of select="xsd:decimal(normalize-space(ns1:aa)) + 2500"/>
</xsl:if>




--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/


Current Thread
Keywords