Таким образом, вместо того, чтобы выводить отсортированную последовательность напрямую, вы дополнительно хотите сгруппировать по @time idiv 1000
:
<xsl:template match="trade">
<xsl:for-each-group select="car" group-by="@brand">
<h2>{current-grouping-key()}</h2>
<table>
<thead>
<tr>
<th>Total of samples</th>
<th>Time</th>
<th>Total of TRUE</th>
<th>Total of FALSE</th>
</tr>
</thead>
<xsl:variable name="sorted-cars" as="element(car)*">
<xsl:perform-sort select="current-group()">
<xsl:sort select="xs:integer(@time)"/>
</xsl:perform-sort>
</xsl:variable>
<tbody>
<xsl:for-each-group select="$sorted-cars" group-adjacent="@time idiv 1000">
<tr>
<td>{count(current-group())}</td>
<td>{current-group()[last()]/@time}</td>
<td>{count(current-group()[@trend = 'true'])}</td>
<td>{count(current-group()[@trend = 'false'])}</td>
</tr>
</xsl:for-each-group>
</tbody>
</table>
</xsl:for-each-group>
</xsl:template>
https://xsltfiddle.liberty -development.net / nc4NzQ1 / 1
Или вам не нужно сортировать, но используйте group-by="@time idiv 1000"
, возможно, сортировка групп по current-grouping-key()
.