Subject: Re: Mask * for translate function
From: Ferdinand Soethe <xsl-list@xxxxxxxxxx>
Date: Thu, 10 Nov 2005 08:58:33 +0100
|
Thanks David,
> translate() doesn't have any special characters, all characters in the
> first string (including *) represent themselves and are translated to
> characters in the second string.
That's what I gathered from the docs. But when I execute the test template
below (against any given document) both strings are translated to
'Teststring1' with no following underscore.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="verboteneZeichenInDateiNamen"> .:*"'+,|$&'><"%?!v|dV\D_q/\</xsl:variable>
<xsl:template match="/">
<xsl:message>
<xsl:value-of select="translate('Teststring1',$verboteneZeichenInDateiNamen,'_')" />
</xsl:message>
<xsl:message>
<xsl:value-of select="translate('Teststring1*',$verboteneZeichenInDateiNamen,'_')" />
</xsl:message>
</xsl:template>
</xsl:stylesheet>
And that happens no matter if I use Xalan or Saxon.
Any ideas what the problem might be?
Thanks.
--
Ferdinand Soethe
|