Re: [xsl] xsl:when element test with number

Subject: Re: [xsl] xsl:when element test with number
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 24 Oct 2003 14:54:14 +0100
> <xsl:when test="name(.)='my_element'>...</xsl:when>

It's generally better (and much safer if namespaces are around)
to go

<xsl:when test="self::my_element>...</xsl:when>

name() returns an essentially arbitrary result in XSLT.
The system may choose an arbitrary prefix unrelated to any prefix in the
source if the element is in a namespace.

However for you later tests you have to use something like name() but in
that case I would use local-name() as that at least has a defined result.

Jeni's famous test for a number


is true if $foo can be cast to a number and false otherwise, as in that
case you get 
NaN != NaN
and NaN is the only thing that is not equal to itself.

so replace $foo by your substring call to extract the bit that is a

Alternatively if the first bit doesn't have any digits, just zap the digits as in


which is true for my_element_5 but also my6_ele5m7ent_5



This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:

 XSL-List info and archive:

Current Thread