[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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
Keywords