Thanks Eliot. I'll give that a try now. I have been passing the path into
Saxon as a parameter:
java net.sf.saxon.Transform -s:""${input-file}""
-xsl:""C:/DITAwork/driver/xsl/FixURLv2.xsl"" opt_i=""${input-file}""
opt_o=""${output-file}""
but the source application passes a path that is corrupted by MS-DOS
'contractions', as in C:\PROGRA~1\..., so document-uri() is a much better
solution.
Thanks again,
Richard
-----Original Message-----
From: Eliot Kimber
Sent: 29 June 2008 18:01
To: xsl-list
Subject: Re: [xsl] Where is my document? local source path discovery (was
XSLT 2 Functions for URL Manipulation (was Rewriting href))
On 6/28/08 3:21 PM, "Marroc" <marrocdanderfluff(_at_)yahoo(_dot_)co(_dot_)in>
wrote:
Wow Eliot - that is really useful, thanks. It took me a few minutes to
read and understand but now I have, it has certainly saved me a great
deal of time. Thanks very much.
The missing piece of the puzzle then is to discover the local source
path from within the source document while it is being processed. Once
I have that, I'm home and dry! Does anyone have further ideas?
In XSLT 2 you can use document-uri() to get the URI of the current document,
so:
<xsl:template match="/">
<xsl:variable name="inputUrl" select="document-uri(.)" as="xs:string"/
</xsl:template>
In situations where the use of xml:base may have changed the base URI to
which a given relative path should resolve, you can use base-uri() rather
than document-uri(). For example, resolving references specified in incoming
attributes.
Cheers,
Eliot
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--