Re: [xsl] URI's, double backslashes and regular expressions

Subject: Re: [xsl] URI's, double backslashes and regular expressions
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 28 Oct 2010 20:03:18 +0100
On 28/10/2010 19:51, Neil Owens wrote:


I just can't figure out the syntax here

I'm passing a directory location into Saxon as a parameter. Only I need to make every '\' character in the (windows) directory path a '\\' for the uri in the transform. As it's only the transform that needs this I thought I'd do the conversion in the transform. And it's beaten me.


why? UROs never use \ to separate components they always use / and \ isn't an escape character in xpath strings so you never need to double \/


The command line param is: ...path="C:\Documents and Settings\Adminis
trator\My Documents\Projects\Transform\OutputFiles"

I've got this neatly passed into the transform with:

<xsl:param name="path"></xsl:param>
...
<xsl:template match="Log">
         <xsl:value-of select= replace($path, '\\', '\\')" />

         <xsl:variable name="Command" select="concat($path, '\\OutputFiles\\Command-output.xml')" />
         <xsl:result-document method="xml" href="{$Command}">
         .....


But fails and I just can't figure out how to achieve setting the result-document

href to equal "C:\\Documents and Settings\\Administrator\\My Documents\\Projects\\Transform\OutputFiles"


you want a URI not a windows file path with doubled \

file:///c:/Documents%20and%20Settings\\Administrator\\My%20Documents\\Projects\\Transform\OutputFiles

David

Current Thread