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