0
我想爲分組定義一個xsl:鍵。但我希望它是一般的,所以我可以傳遞參數。這有可能嗎? 我想這樣的事情:我可以使用參數來定義xsl:key嗎?
<xsl:key name="key1" match="$matchnode" use="$usenode" />
但它不起作用。我可以獲得相同的行爲嗎?
我想爲分組定義一個xsl:鍵。但我希望它是一般的,所以我可以傳遞參數。這有可能嗎? 我想這樣的事情:我可以使用參數來定義xsl:key嗎?
<xsl:key name="key1" match="$matchnode" use="$usenode" />
但它不起作用。我可以獲得相同的行爲嗎?
在XSLT 1.0中,模式不能引用全局變量;在XSLT 2.0中他們可以。因此,在2.0中,您可以使用
match="*[name()=$matchnode]"
假設這是您的假設語法的預期含義。同樣,您可以使用
use="*[name=$usenode]"
當然,這不是完全通用的,因爲它要求使用表達式作爲子元素;它不允許,例如,一個屬性。爲了使其完全動態化,您需要一個擴展,如saxon:evaluate(),它允許在運行時從字符串構建XPath表達式。