我正在使用XSLT 1.0,我不应该使用XSLT 2.0。
我有以下xml,其中<prvNum>
的值有一些特殊字符。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<prvNum>SPECIAL#1&</prvNum>
</root>
现在我想对<prvNum>
的值执行百分比编码。例如,在编码百分比之后,应该如下更改值:
SPECIAL%231%26
我正在尝试使用以下代码段,但样式表没有编译。
<?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>
有人可以帮我解决这个问题吗?