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&</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?