XSL基于先前节点组合对总计进行分组

时间:2016-11-23 17:54:50

标签: xslt math xpath

我有一个节点列表,其中包含我需要分类为特定大小的组的财务记录信息。我似乎无法绕过如何做到这一点......

如果我有一个记录列表,例如:

<Records>
 <Record Count="5"/>
 <Record Count="5"/>
 <Record Count="5"/>
 <Record Count="4"/>
 <Record Count="4"/>
 <Record Count="4"/>
 <Record Count="3"/>
 <Record Count="3"/>
 <Record Count="2"/>
 <Record Count="1"/>
 <Record Count="1"/>
 <Record Count="1"/>
 <Record Count="1"/>
</Records>

我想将它们分成5组(或尽可能接近5)

我尝试了一些

的方法
<xsl:for-each-group select="Records/Record" group-by="ceiling((@Count + sum(preceding-sibling::Record/@Count)) div 5)">

哪个工作正常,直到遇到所需的总数为止。

<Record Count="4"/> The total thusfar is 27, the ceiling "group" being 6
<Record Count="3"/> The total here is 30, placing the ceiling "group" at also 6

然而,这违反了“组”不能超过@Count总数5的规则。

我怎样才能将这些排序组合成一个最佳组合成5个组的列表?

预期结果将是 群组: 5,5,5,4 + 1,4 + 1,4 + 1,3 + 2,3 + 1

谢谢!

0 个答案:

没有答案