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