如果您坚持使用 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 函数。