我想为分组定义一个xsl:key。但我希望它是通用的,以便我可以传递参数。这有可能吗? 我想要这样的事情:
<xsl:key name="key1" match="$matchnode" use="$usenode" />
但它不起作用。我可以获得相同的行为吗?
答案 0 :(得分:0)
在XSLT 1.0中,模式不能引用全局变量;在XSLT 2.0中他们可以。所以在2.0中你可以使用
match="*[name()=$matchnode]"
假设这是您的假设语法的预期含义。同样,你可以使用
use="*[name=$usenode]"
当然这不是完全通用的,因为它要求use表达式是子元素;例如,它不允许属性。要使它完全动态化,你需要一个扩展名,例如saxon:evaluate(),它允许在运行时从字符串构造XPath表达式。