XSLT2 for-each-group:有没有办法引用代表性元素的序列?

时间:2011-11-16 13:28:55

标签: xslt-2.0 xpath-2.0

在XSLT2中的for-each-group语句内,焦点变为一组代表性元素,每个组中有一个元素。这意味着,例如,last()返回组的数量(因为它等于代表元素的数量,因此是焦点的“大小”)。 Position()返回(基本上)组号,因为它是代表元素序列中讨论组的代表元素的位置等。

我的问题是,是否可以在Xpath2语句中引用这些代表性元素的集合。类似于current-group()的东西,除了包含所有代表性元素的集合(每组中有一个),而不是当前组中所有元素的集合。

2 个答案:

答案 0 :(得分:2)

在for-each-groups内部,您可以处理每个组而不是所有组。因此,要找到所有组中的第一项,您需要

<xsl:variable name="reps" as="node()*">
  <xsl:for-each-group select="foo" group-by="bar">
    <xsl:sequence select="."/>
  </xsl:for-each-group>
</xsl:variable>

在我的理解中。

答案 1 :(得分:2)

使用

current-group()[1]

或:

current-group()[last()]