我想知道如何扩展XSLT 1.0以便我可以在http://www.w3schools.com/Xpath/xpath_functions.asp使用来自fn函数命名空间的函数
我刚刚被告知系统从现在开始使用MSXML XSLT处理器。我的所有样式表都是用2.0编写的...所以现在我是堆栈,没有什么工作,也不知道我如何使用函数,例如来自fn namespace。
我想知道是否有可能以某种方式扩展XSLT 1.0,因为我使用了很多这些函数。或者我现在该怎么办?我绝对迷失和沮丧。
非常感谢任何帮助!
非常感谢!
答案 0 :(得分:3)
如果您坚持使用MSXML作为处理器,我认为您唯一的选择是在Obalix的答案中使用选项2,但您可能必须自己编写扩展功能。
以下是如何执行大写字母功能的示例。这使用XSLT中的javascript来完成该功能。
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="javascript" implements-prefix="user">
function uppercase(textToConvert)
{
return textToConvert.toUpperCase();
}
</msxsl:script>
<xsl:template match="text()">
<xsl:value-of select="user:uppercase(string(.))"/>
</xsl:template>
</xsl:stylesheet>
您可以做的是将所有脚本函数放在他们自己的XSLT表中,并将其包含在您自己的所有XSLT样式表中。
结果有多复杂,取决于您使用了多少XPath2.0函数。
答案 1 :(得分:2)
就个人而言,我猜选项1和3是可行的。