[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xsl:when element test with number
> <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 (number($foo)!=number($foo)) 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 number. Alternatively if the first bit doesn't have any digits, just zap the digits as in test="translate(local-name(),'0123456789','')='my_element_'" which is true for my_element_5 but also my6_ele5m7ent_5 David -- http://www.dcarlisle.demon.co.uk/matthew ________________________________________________________________________ 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: http://www.star.net.uk ________________________________________________________________________ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|