[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: How to check if a value is numeric and add 2500 to

Subject: Re: How to check if a value is numeric and add 2500 to it?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 05 Apr 2010 08:06:19 -0400
Re:  How to check if a value is numeric and add 2500 to
At 2010-04-05 14:01 +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

You address it with a node set expression and if the result is non-empty, then it exists.


If you are using XSLT 1 and you are at the parent of the element then:

<xsl:if test="ns1:aaa">

A more explicit way in XSLT 2 would be:

<xsl:if test="exists(ns1:aaa)">

... but the result is the same.

- 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 you are using XSLT 1 then:


<xsl:if test="number(ns1:aaa) = number(ns1:aaa)">

... because of the property of NaN not being equal to NaN.

A more explicit way in XSLT 2 would be:

<xsl:if test="ns1:aaa castable as xsd:float">

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

<xsl:value-of select="ns1:aaa + 2500"/>


How can I implement this logic in XSLT?

<xsl:if test="exists(ns1:aaa)"> <xsl:if test="ns1:aaa castable as xsd:float"> <xsl:value-of select="ns1:aaa + 2500"/> </xsl:if> </xsl:if>

I hope this helps.

. . . . . . . . . Ken


-- XSLT/XQuery training: San Carlos, California 2010-04-26/30 Principles of XSLT for XQuery Writers: San Francisco,CA 2010-05-03 XSLT/XQuery training: Ottawa, Canada 2010-05-10/14 XSLT/XQuery/UBL/Code List training: Trondheim,Norway 2010-06-02/11 Vote for your XML training: http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.