Subject: RE: 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: 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
|