在 XSLT2 中的 for-each-group 语句中,焦点变为一组具有代表性的元素,每个组中一个。这意味着,例如,last() 返回组的数量(因为它等于代表元素的数量,因此等于焦点的“大小”)。Position() 返回(本质上)组号,因为它是代表元素序列中正在讨论的组的代表元素的位置,等等。
我的问题是是否可以在 Xpath2 语句中引用这些代表性元素的集合。类似于 current-group() 的东西,除了包含所有代表元素的集合(每个组一个)而不是当前组的所有元素的集合。
在 for-each-group 内部,您处理每个组而不是所有组。因此,要找到您需要的所有组中的第一项
<xsl:variable name="reps" as="node()*">
<xsl:for-each-group select="foo" group-by="bar">
<xsl:sequence select="."/>
</xsl:for-each-group>
</xsl:variable>
在我的理解中。
使用:
current-group()[1]
或者:
current-group()[last()]