如何获取Muenchian分组后的输出记录行数统计?
解决Muenchian分组后输出行数统计问题
核心思路
Muenchian分组通过key节点按指定字段聚合重复项,要统计分组后的输出行数,只需统计每个分组的唯一代表节点数量——即每组中generate-id()与该组第一个节点generate-id()相等的节点。
具体修改步骤
确认已有Muenchian分组的key定义
确保你的XSLT中已经定义了分组用的key,例如按GroupField字段分组:<xsl:key name="group-by-target" match="Record" use="GroupField"/>(将
GroupField替换为你实际的分组字段名,group-by-target替换为你的key名称)替换Footer中的统计逻辑
把原来统计原XML中Record/Description数量的代码,替换为分组后的行数统计:- 原统计代码(示例):
<xsl:value-of select="count(Record/Description)"/> - 修改后的统计代码:
<xsl:value-of select="count(Record[generate-id() = generate-id(key('group-by-target', GroupField)[1])])"/>
注意:这里的
key('group-by-target', GroupField)要和你定义的key名称、分组字段完全对应。- 原统计代码(示例):
示例验证
假设你的输入XML是:
<Records> <Record> <GroupField>CategoryA</GroupField> <Description>Item1</Description> </Record> <Record> <GroupField>CategoryA</GroupField> <Description>Item2</Description> </Record> <Record> <GroupField>CategoryB</GroupField> <Description>Item3</Description> </Record> </Records>
按GroupField分组后输出2行,修改后的Footer统计结果就是2,而非原逻辑的3。
内容的提问来源于stack exchange,提问作者Greg Gregerson
相关产品推荐
相关产品推荐

