Codificação percentual usando XSLT 1.0

Estou usando o XSLT 1.0 e não devo usar o XSLT 2.0. Eu tenho o seguinte xml no qual o valor de<prvNum> tem alguns caracteres especiais.

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <prvNum>SPECIAL#1&amp;</prvNum>
</root>

Agora eu quero executar a codificação percentual para o valor de<prvNum>. Por exemplo, o valor deve ser alterado conforme abaixo após a porcentagem de codificação:

SPECIAL%231%26

Estou tentando com o seguinte trecho de código, mas a folha de estilo não está compilando.

 <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:custom="http://youdomain.ext/custom" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0">
   <msxsl:script language="JScript" implements-prefix="custom">function uriencode(string) {
 return encodeURIComponent(string);
}</msxsl:script>
   <!-- identity template -->
   <xsl:template match="@*|node()">
      <xsl:copy>
         <xsl:apply-templates select="@* | node()" />
      </xsl:copy>
   </xsl:template>
   <xsl:template match="prvNum">
      <prvNum>
         <xsl:copy-of select="@*" />
         <xsl:value-of select="custom:uriencode(text())" />
      </prvNum>
   </xsl:template>
</xsl:stylesheet>

Alguém pode me ajudar a resolver o problema?

questionAnswers(0)

yourAnswerToTheQuestion