Re: [xsl] Mask * for translate function

Subject: Re: [xsl] 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"> .:*"'+,|$&amp;&apos;&gt;&lt;&quot;%?!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

Current Thread