[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Escaping special characters for *nix file path
Subject: Re: [xsl] Escaping special characters for *nix file path From: Liam R E Quin <liam@xxxxxx> Date: Sun, 29 Jul 2012 08:53:27 -0400 |
On Sun, 2012-07-29 at 06:30 +0200, Lighton Phiri wrote: > Yes they are allowed, but special characters need to be escaped for > one to access a file path. [..] > phiri@PHRLIG001:~$ touch ../data/Sites/3218AD Eland\'s > Bay/Bobbejaansberg/BB15/testFile.txt > touch: cannot touch `Bay/Bobbejaansberg/BB15/testFile.txt': No such > file or directory This is because the shell splits arguments at spaces, so you actually gave the touch command two filenames. If you used quotes $ touch "../data/Sites/3218AD Eland's Bay/Bobbejaansberg/BB15/testFile.txt" then it would work fine. It is not necessary to escape characters from the shell inside an XSLT stylsheet, because the shell isn't involved. [...] > >replace($filename, "[ '\\`&;]", "\\&") > >will probably do what you want. > >Or use \s instead of space if there might be newlines. > >You might also need to replace " with \" > > I am getting an error when I try what you suggested. > > <xsl:value-of select="{replace($filename, "[ '\\`&;]", "\\&")}" /> You don't want the curly braces there - value-of is expecting an expression, not a string. [...] > My file paths have special characters in them and those characters > include 'square brackets', 'parentheses', 'ampersands', etc. all of > which are interpreted differently by the regular expression given by > second argument of replace function. That doesn't matter. Actually what I tend to do myself is something like replace($filename, "[^a-zA-Z0-9]+", "-") to turn any sequence of characters other than letters or digits into a hyphen. If it's a path rather than a filename, include / after the 9 there. But if the data is untrusted you should not normally allow / inside it. Finally, as Mike Kay implied in a separate message, you probably want \$0 as the replacement, not \& (I use too many regular expression libraries, sorry) Liam -- Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/ Pictures from old books: http://fromoldbooks.org/ Ankh: irc.sorcery.net irc.gnome.org freenode/#xml
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Escaping special characte, Lighton Phiri | Thread | Re: [xsl] Escaping special characte, Lighton Phiri |
Re: [xsl] Escaping special characte, Michael Kay | Date | Re: [xsl] Escaping special characte, Lighton Phiri |
Month |