[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Martin Honnen wrote:
Sorry, I missed the fact that xsl:result-document needs a URI reference, so I need to convert my Windows file path already before.
Here is the function I came up with, which will convert an absolute Windows file path into a URI:
This conforms to the rules stated in the IEBlog post "File URIs in Windows" [1]. Suggestions for improvements on the function are welcome.
Yves
[1] http://blogs.msdn.com/ie/archive/2006/12/06/file-uris-in-windows.aspx
Re: [xsl] XSLT 2: File path to URI for non-XML file
Subject: Re: [xsl] XSLT 2: File path to URI for non-XML file From: Yves Forkl <Y.Forkl@xxxxxx> Date: Wed, 08 Oct 2008 14:12:32 +0200 |
Martin Honnen wrote:
Yves Forkl wrote: [...]How can I "convert" the file path of the CSS file (i.e. $css_file) into a URI, given that the XSLT stylesheet is not located in the same directory? Functions targeting the URI of source document nodes won't help me much either, I fear.
The href attribute of xsl:result-document takes a URI reference (relative or absolute) so I am not sure where the problem is, is your variable value not simply a relative file URI?. If you want/need to resolve relative URIs then use http://www.w3.org/TR/xpath-functions/#func-resolve-uri
Sorry, I missed the fact that xsl:result-document needs a URI reference, so I need to convert my Windows file path already before.
Here is the function I came up with, which will convert an absolute Windows file path into a URI:
<xsl:function name="my:windowsfilepath_to_uri" as="xs:string"> <xsl:param name="filepath" as="xs:string"/> <!-- Conversion steps: 1) replace backslashes with slashes 2) encode percent sign 3) percent-encode URI fragment identifier character 4) percent-encode characters illegal in URIs, using iri-to-uri 5) add three slashes before drive letter 6) prefix result with "file:" --> <xsl:value-of select="concat( 'file:', replace( iri-to-uri( replace( replace( replace($filepath, '\\', '/'), '%', '%25'), '#', '%23')), '^([A-Za-z]):', '///$1:'))"/> </xsl:function>
This conforms to the rules stated in the IEBlog post "File URIs in Windows" [1]. Suggestions for improvements on the function are welcome.
Yves
[1] http://blogs.msdn.com/ie/archive/2006/12/06/file-uris-in-windows.aspx
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT 2: File path to URI , Martin Honnen | Thread | RE: [xsl] XSLT 2: File path to URI , Michael Kay |
RE: [xsl] XSLT 2.0 processor signal, Michael Kay | Date | Re: [xsl] Key and document() proble, G. Ken Holman |
Month |
Keywords