Xml 对XSLT中的唯一组合值求和
我试图对XML中节点的唯一组合进行分组和求和Xml 对XSLT中的唯一组合值求和,xml,xslt,xslt-1.0,xslt-2.0,xslt-grouping,Xml,Xslt,Xslt 1.0,Xslt 2.0,Xslt Grouping,我试图对XML中节点的唯一组合进行分组和求和 <root> <row> <field1>720</field1> <field2>8900</field2> <field3>100</field3> </row> <row> <field1>720</fie
<root>
<row>
<field1>720</field1>
<field2>8900</field2>
<field3>100</field3>
</row>
<row>
<field1>720</field1>
<field2>99998</field2>
<field3>120</field3>
</row>
<row>
<field1>720</field1>
<field2>8900</field2>
<field3>130</field3>
</row>
<row>
<field1>720</field1>
<field2>12403</field2>
<field3>130</field3>
</row>
</root>
720
8900
100
720
99998
120
720
8900
130
720
12403
130
因此,对于field1和field2的每个唯一组合,我需要生成field3的和
我理解group by是可以使用的,但不确定如何实现它下面是如何使用和
group by
每个行的field1
和field2
元素的值的示例。对于每个组,生成字段3
元素和@key
的sum()
,以演示分组键值是什么:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<summary>
<xsl:for-each-group select="/root/row"
group-by="string-join((field1,field2),'-')">
<sum key="{current-grouping-key()}">
<xsl:value-of select="sum(current-group()/field3)" />
</sum>
</xsl:for-each-group>
</summary>
</xsl:template>
</xsl:stylesheet>
在对样本数据运行时,它会生成以下输出:
<summary>
<sum key="720-8900">230</sum>
<sum key="720-99998">120</sum>
<sum key="720-12403">130</sum>
</summary>
230
120
130