0

我想定义一个 xsl:key 进行分组。但我希望它是通用的,以便我可以传递参数。这有可能吗?我想要这样的东西:

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

但它不起作用。我可以获得相同的行为吗?

4

1 回答 1

0

在 XSLT 1.0 中,模式不能引用全局变量;在 XSLT 2.0 中他们可以。所以在 2.0 中你可以使用

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

假设这是您的假设语法的预期含义。同样,您可以使用

use="*[name=$usenode]"

当然,这不是完全通用的,因为它要求 use 表达式是子元素;例如,它不允许属性。要使其完全动态化,您将需要一个扩展,例如 saxon:evaluate(),它允许在运行时从字符串构造 XPath 表达式。

于 2012-12-19T11:30:17.193 回答