【问题标题】:Can I use parameters to define xsl:key?我可以使用参数来定义 xsl:key 吗?
【发布时间】:2012-12-19 11:03:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: xslt key grouping


    【解决方案1】:

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

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

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

    use="*[name=$usenode]"
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2010-11-25
      • 2018-10-26
      • 1970-01-01
      • 2020-05-13
      • 2016-03-27
      相关资源
      最近更新 更多