Re: [xsl] Getting text from string

Subject: Re: [xsl] Getting text from string
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 01 Nov 2011 17:32:25 +0000
On 01/11/2011 17:18, Stan Mikita wrote:
Hi,

I have a directory path value and i want to grab the text "filename"
to the right of the last "/". I've tried using the below without any
luck. Is there a reverse search where you can tell it to search from
the right up to the first occurence of a "/"? Value can be many
directories deep.

path = "dir1/dir2/dir3/dir4/filename"

xsl:variable name="dirPath" select="substring-before(@path,'/')"/

xsl:variable name="dirPath" select="substring-after(@path,'/')"/


In XSLT 2.0 you can do select="tokenize(@path, '/')[last()]".

In XSLT 1.0 it needs a recursive template: conceptually

getLast(X) -> if (contains(X, '/') then getLast(substring-after(X, '/')) else X

Michael Kay
Saxonica

Current Thread