2012-12-19 39 views
0

我想爲分組定義一個xsl:鍵。但我希望它是一般的,所以我可以傳遞參數。這有可能嗎? 我想這樣的事情:我可以使用參數來定義xsl:key嗎?

<xsl:key name="key1" match="$matchnode" use="$usenode" /> 

但它不起作用。我可以獲得相同的行爲嗎?

回答

0

在XSLT 1.0中,模式不能引用全局變量;在XSLT 2.0中他們可以。因此,在2.0中,您可以使用

match="*[name()=$matchnode]" 

假設這是您的假設語法的預期含義。同樣,您可以使用

use="*[name=$usenode]" 

當然,這不是完全通用的,因爲它要求使用表達式作爲子元素;它不允許,例如,一個屬性。爲了使其完全動態化,您需要一個擴展,如saxon:evaluate(),它允許在運行時從字符串構建XPath表達式。

相關問題