XSLT ssortingng replace

Je ne connais pas vraiment XSL mais je dois corriger ce code, je l’ai réduit pour le rendre plus simple.
Je reçois cette erreur

Fonction XSLT / XPath invalide

sur cette ligne

 

C’est le XSL

        'Notes or subject'           

Quelqu’un peut-il me dire ce qui ne va pas?

    replace n’est pas disponible pour XSLT 1.0.

    Codesling a un modèle de remplacement de chaîne que vous pouvez utiliser comme substitut à la fonction:

                            

    invoqué comme:

            

    D’un autre côté, si vous ne devez littéralement remplacer qu’un seul caractère par un autre, vous pouvez appeler translate avec une signature similaire. Quelque chose comme ça devrait bien fonctionner:

      

    De plus, notez que dans cet exemple, j’ai changé le nom de la variable en “newtext”, les variables XSLT étant immuables, vous ne pouvez donc pas faire l’équivalent de $foo = $foo comme dans votre code original.

    Voici la fonction XSLT qui fonctionnera de façon similaire à la fonction Ssortingng.Replace () de C #.

    Ce modèle a les 3 parameters ci-dessous

    text : – votre chaîne principale

    remplacer : – la chaîne que vous voulez remplacer

    par : – la chaîne qui répondra par une nouvelle chaîne

    Voici le modèle

                        

    L’exemple ci-dessous montre comment l’appeler

            

    Vous pouvez également consulter l’ URL ci – dessous pour les détails.

    Note: Si vous souhaitez utiliser l’algo déjà mentionné dans les cas où vous devez remplacer un grand nombre d’instances dans la chaîne source (par exemple, nouvelles lignes dans un texte long), il est fort probable que vous obtiendrez StackOverflowException cause de appel récursif.

    J’ai résolu ce problème grâce à l’incorporation de type Java intégré à Xalan (qui ne fonctionnait pas comme dans Saxon ):

      ...  ...  

    Vous pouvez utiliser le code suivant lorsque votre processeur s’exécute sur .NET ou utilise MSXML (contrairement aux processeurs natifs basés sur Java ou autres). Il utilise msxsl:script .

    Assurez-vous d’append l’espace de noms xmlns:msxsl="urn:schemas-microsoft-com:xslt" à votre élément xsl:stylesheet ou xsl:transform root.

    De plus, liez outlet à n’importe quel espace de noms que vous aimez, par exemple xmlns:outlet = "http://my.functions" .

      function replace_str(str_text,str_replace,str_by) { return str_text.replace(str_replace,str_by); }   

    La rouine est plutôt bonne, mais elle bloque mon application, il me fallait donc append le cas:

          

    avant que la fonction soit appelée récursivement.

    J’ai reçu la réponse d’ici: Quand test suspendu dans une boucle infinie

    Je vous remercie!