如果您遇到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函數。
像MSXML這樣的XSLT 1.0處理器支持XPath 1.0中定義的函數http://www.w3.org/TR/xpath/#corelib和XSLT 1.0 http://www.w3.org/TR/xslt#附加FUNC。如果您將其與w3schools發佈的內容進行比較,那麼您會發現XPath 1.0中可用的功能是XPath 2.0中定義的功能的子集。所以你可以使用你在w3schools上用MSXML找到的一些函數,當然只有那些已經在XPath 1.0中定義的函數,而不是那些在XPath 2.0中新定義的函數。 基本上,如果你想使用XSLT 1.0處理器,那麼使用w3schools作爲參考不是一個好主意。 – 2010-02-22 15:35:49