RE: [xsl] most efficient way to get XML source's parent dir path

Subject: RE: [xsl] most efficient way to get XML source's parent dir path
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 10 Feb 2009 17:13:02 -0000
last() is a number >= 1, so boolean(last()) is always true, and not(last())
is always false. So a filter expression using the predicate [not(last())]
will always deliver an empty sequence.

Use [position() ne last()]

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

> -----Original Message-----
> From: Robert Koberg [mailto:rob@xxxxxxxxxx] 
> Sent: 10 February 2009 16:53
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] most efficient way to get XML source's parent dir path
> 
> Hi,
> 
> I want to get the path to the parent directory of the XML 
> used as the source in a transformation.
> 
> Is this the best way?
> 
> <xsl:variable
>    name="path-tokens"
>    select="tokenize(document-uri(/), '/')" as="xs:string*"/> 
> <xsl:variable
>    name="source-dir-path"
>    select="string-join(remove($path-tokens, 
> count($path-tokens)), '/')" as="xs:string"/>
> 
> I also unsuccessfully tried to use only one variable:
> 
> <xsl:variable
>    name="source-dir-path-test"
>    select="string-join(tokenize(document-uri(/), 
> '/')[not(last())], '/')" as="xs:string"/>
> 
> which results in an empty string.
> 
> Is there a better way?
> 
> thanks,
> -Rob

Current Thread