使用XSLT1.0进行百分比编码
我使用的是XSLT1.0,不应该使用XSLT2.0。 我有以下xml,其中使用XSLT1.0进行百分比编码,xslt,xslt-1.0,Xslt,Xslt 1.0,我使用的是XSLT1.0,不应该使用XSLT2.0。 我有以下xml,其中的值有一些特殊字符 <?xml version="1.0" encoding="UTF-8"?> <root> <prvNum>SPECIAL#1&</prvNum> </root> 我正在尝试以下代码片段,但样式表没有编译 <?xml version="1.0" encoding="UTF-8"?> <xsl:styl
的值有一些特殊字符
<?xml version="1.0" encoding="UTF-8"?>
<root>
<prvNum>SPECIAL#1&</prvNum>
</root>
我正在尝试以下代码片段,但样式表没有编译
<?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>
函数uriencode(字符串){
返回组件(字符串);
}
有人能帮我解决这个问题吗?我想您需要先将
自定义:
前缀绑定到名称空间,然后才能使用它。@michael.hor257k,谢谢您的回复。我遇到错误无法使用提供的XML/XSL输入生成XML文档。找不到名为的匹配单参数函数{http://youdomain.ext/custom}在绑定了自定义前缀后,使用uriencode()
。你能帮我找出解决方案吗?你实际上使用的是MSXSL处理器吗?@michael.hor257k,老实说,我不确定我使用的是哪个处理器。我们在项目中使用java和Spring集成。如何知道我使用的是哪个处理器?上面的代码只能在Microsoft的MSXSL中使用:请参阅此处如何查找您拥有的处理器:
<?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>