xsl-list
[Top] [All Lists]

Re: [xsl] XPath 1.0 Expression to Test for 3 Digit Number

2012-05-27 05:47:46
At 2012-05-27 09:14 +0100, Vasu Chakkera wrote:
string-length could be tricky if the number 999 is represented as 00999.

I'm not sure about your concern because I already accommodated that situation with my answer:

  string-length(string(number(.)))=3]

The number cast will ensure that any leading insignificant zeroes won't impact the string's length.

Is there something I'm missing that prompted you to write?

. . . . . . . . . Ken

On 8 May 2012 21:14, G. Ken Holman <gkholman(_at_)cranesoftwrights(_dot_)com> 
wrote:
> At 2012-05-08 13:07 -0700, Don Smith wrote:
>>
>> I need an XPath 1.0 expression that will test a node and return a
>> boolean if the node content is a 3 digit number (i.e., 100-999) and
>> false if it's anything else.
>>
>> The catch is this expression won't
>> be in a transformation so I can't use variables or other additional
>> constructs. All I get is one expression. I've tried this
>>
>> *[(string(number(.)) !='NaN')]
>>
>>
>> and
>>  obtained the number that I need. But I can't get any sort of compare to
>>  work that makes the number be more than 99 and less than 1,000.
>
>
> Did you try just checking its length?  Note I use a different comparison to
> ensure the value is, itself, a number at all.
>
> *[number(.)=number(.) and string-length(string(number(.)))=3]
>
> I hope this helps.
>
> . . . . . . . . Ken



--
Public XSLT, XSL-FO, UBL and code list classes in Europe -- Oct 2012
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/
G. Ken Holman                   mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
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>
--~--