2013-01-23 45 views

回答

3

當使用xsl變量而不是XPath表達式的 時,XSLT的性能會提高嗎?

這取決於正在使用的XSLT處理器。如果XSLT處理器具有良好的優化器,則在許多情況下它會自行完成分解,並且手動無法實現這種速度增益。

然而:

  1. 「保存」在一個變量中評價的結果可以使代碼更短,更具有可讀性。

  2. 這是DRY(不要重複自己)最佳實踐的一個很好的應用。

  3. 依靠優化器並不總是有效。

  4. 在編寫可移植代碼時,我們不應該依賴優化器,該代碼旨在由多個不同的XSLT處理器執行 - 例如編寫函數/模板庫時。

對於某些XSLT 2.0處理器,諸如撒克遜,甚至可以具有xsl:function執行優化,通過接通函數記憶化。在撒克遜的情況下,這通過將擴展屬性saxon:memo-function設置爲"yes"來完成。

+0

謝謝。我正在使用Xalan。使用變量是否有所作爲? –

+0

@RaviShenoy,正如在這個答案中所解釋的那樣,即使速度幾乎沒有差異。 –

0

這是我的經驗,但它更重要,它提高了代碼的可讀性。它還使代碼重用更簡單。