“Expression régulière”style remplacer en XSLT 1.0

J'ai besoin d'effectuer une rechercher et remplacer à l'aide de XSLT 1.0 qui est vraiment adapté à des expressions régulières. Malheureusement, elles ne sont pas disponibles en 1.0 et je suis également incapables d'utiliser les bibliothèques d'extension tels que EXSLT en raison des paramètres de sécurité je ne peux pas changer.

La chaîne, je travaille avec des regards comme:

19;#John Smith;#17;#Ben Reynolds;#1;#Terry Jackson

J'ai besoin de remplacer les numéros et ; # caractères avec un ,. Pour l'exemple ci-dessus serait de changer:

John Smith, Ben Reynolds, Terry Jackson

Je sais récursif de la fonction de chaîne est nécessaire, probablement à l'aide de sous-chaîne et de la traduire, mais je ne suis pas sûr où commencer.

Quelqu'un aurait-il quelques conseils sur la façon de faire ce travail? Voici ce que j'ai commencé avec:

<xsl:template name="TrimMulti">
    <xsl:param name="FullString" />
    <xsl:variable name="NormalizedString">
        <xsl:value-of select="normalize-space($FullString)" />
    </xsl:variable>
    <xsl:variable name="Hash">#</xsl:variable>
    <xsl:choose>
        <xsl:when test="contains($NormalizedString, $Hash)">
            <!-- Do something and call TrimMulti -->
        </xsl:when>
    </xsl:choose>
</xsl:template>

OriginalL'auteur Alex Angas | 2009-06-25