2011-04-01 51 views
4

是否可以在Visual Studio中使用EXSLT函數?我在VS中編寫和調試我的xslt腳本。我需要做什麼才能夠使用例如date:add()函數?一個非常簡單的腳本應該是什麼樣子? 非常感謝, 切赫如何在Visual Studio環境中使用EXSLT

回答

2

的Visual Studio(2010年,2008年和2005年)都使用.NET XslCompiledTransform XSLT處理器最新三個版本。除了common:node-set()之外,XslCompiledTransform不會執行任何EXSLT函數 - 所以在這裏你運氣不好。

我不認爲在Visual Studio中使用其他XSLT處理器是一種簡單而自然的方法,即使可能有一些技巧可以做到這一點,但在這種情況下,將無法執行XSLT調試。

最後,EXSLT通常提供一些EXSLT函數的有限XSLT實現。當然,這個功能不那麼強大和方便,但你可以走這條路。

我個人的建議是開始使用XSLT 2.0,它比XSLT 1.0強大得多,因此在XSLT 2.0應用程序中幾乎不需要使用EXSLT。

當然,VS中不支持XSLT 2.0,但還有其他優秀的IDE(如oXygen),它們提供了很好的XSLT 2.0和XQuery調試器。

更新:您可以使用XslCompiledTransform第三方實現EXSLT組成:MVP - XML project's EXSLT .NET module

+0

感謝您的回答!我很喜歡使用XSLT 2.0,但我的客戶迫使我只使用Microsoft技術。 – Petr 2011-04-01 12:45:01

+0

@彼得:不客氣。請查看我答案的更新。這項工作是在6 - 7年前完成的,儘管我編寫了「sets」函數實現,但我完全忘記了它......當然,VS本身對EXSLT是不知道的,並且不會爲這些函數提供intellisense。 – 2011-04-01 12:53:16

+0

我實際上使用的是EXSLT.NET,我只是想知道是否可以在VS XSLT調試器中使用它。感謝信息它不是。 – Petr 2011-04-01 15:31:16

1

您還可以使用msxml:script標籤將您自己的函數包含在XSLT中。這適用於簡單的函數,也可以在VS2005及更高版本中調試,例如,

<msxml:script implements-prefix="user"> 
    <![CDATA[ 
    function toUpperCase(str) 
    { 
    return str.toUpperCase(); 
    } 
    ]]> 
</msxml:script> 
相關問題