使用XSLT 1.0进行百分比编码

时间:2017-02-10 12:00:13

标签: xslt xslt-1.0

我正在使用XSLT 1.0,我不应该使用XSLT 2.0。 我有以下xml,其中<prvNum>的值有一些特殊字符。

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

有人可以帮我解决这个问题吗?

0 个答案:

没有答案