基于多个相关节点求和xml节点的最简单方法是什么?
我试图根据节点中的相关信息对值列表求和。相关信息是两条信息的组合(以下列出IDa和IDb) 我有这样一个输入示例:基于多个相关节点求和xml节点的最简单方法是什么?,xml,xslt,Xml,Xslt,我试图根据节点中的相关信息对值列表求和。相关信息是两条信息的组合(以下列出IDa和IDb) 我有这样一个输入示例: <root> <node> <IDa>SG</IDa> <IDb>01</IDb> <value>4</value> </node> <node> <IDa>SG</IDa> <IDb>01</
<root>
<node>
<IDa>SG</IDa>
<IDb>01</IDb>
<value>4</value>
</node>
<node>
<IDa>SG</IDa>
<IDb>01</IDb>
<value>2</value>
</node>
<node>
<IDa>SG</IDa>
<IDb>02</IDb>
<value>3</value>
</node>
<node>
<IDa>BA</IDa>
<IDb>01</IDb>
<value>1</value>
</node>
<node>
<IDa>BA</IDa>
<IDb>01</IDb>
<value>4</value>
</node>
</root>
SG
01
4.
SG
01
2.
SG
02
3.
文学士
01
1.
文学士
01
4.
我试图得到如下输出:
SG01 4
SG01 2
总数6
SG02 3
总数3
BA01 1
BA01 4
总共5个最简单的方法是使用XSLT 3.0和
对每个组
使用组合
分组键:
<xsl:output method="text"/>
<xsl:template match="root">
<xsl:for-each-group select="node" composite="yes" group-by="IDa, IDb">
<xsl:value-of select="current-group()!(IDa || ' ' || IDb || ': ' || value), 'Total: ' || sum(current-group()/value)" separator=" "/>
<xsl:text> </xsl:text>
</xsl:for-each-group>
</xsl:template>
这是一个分组问题。进行搜索-这可能是这里最常被问到的XSLT问题。请注意,XSLT1.0或2.0的答案是不同的。