RE: [xsl] parsing version number strings

Subject: RE: [xsl] parsing version number strings
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 20 Oct 2004 14:40:13 +0100
In pure XSLT 1.0 this needs a recursive template that reads one piece of the
string at a time using substring-before - it's a textbook example of using
recursion.

In 2.0 there's a tokenize() function which makes it much easier. You can
also find str:tokenize() as an EXSLT extension for many 1.0 processors.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Ed_Owen@xxxxxxxxxxxxxxxxxxxx 
> [mailto:Ed_Owen@xxxxxxxxxxxxxxxxxxxx] 
> Sent: 20 October 2004 01:00
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] parsing version number strings
> 
> 
> 
> 
> 
> Has anyone out there come up with a method to parse an 
> arbitrary version
> number string in an XSLT for numeric comparison?
> 
> For example, I'm parsing some Doxygen output and I need to 
> apply different
> templates based on which version of Doxygen produced the output. For
> example, I have something that needs to be applied only to 
> versions 1.3.4
> and older.
> 
> The version of Doxygen is stored in an attribute of the root <doxygen>
> element: <doxygen version="1.3.4">
> 
> Here is a sequence of increasingly newer version numbers that 
> illustrates
> some of the complexities of parsing this string:
> 
> 1.2.9
> 1.2.10
> 1.2.10.1
> 1.3
> 1.3.1
> 1.3.2
> 1.3.2.1
> 
> There doesn't seem to be an XPath function that gives me the 
> position of a
> character within a string, which kind of hamstrings me, as 
> far as I can
> tell.
> 
> Anyone solved this problem before?
> 
> thanks
> Ed
> 
> Ed Owen
> Project Manager
> Information Design and Development (IDD)
> Sony Computer Entertainment America
> e-mail: ed_owen@xxxxxxxxxxxxxxxxxxxx

Current Thread