[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XSLT 2: File path to URI for non-XML file
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. 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|