Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想定义一个 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 表达式。