来自两个不同节点的分组和求和

时间:2019-01-31 10:33:03

标签: xslt-grouping

我有两个不同父项下的值的输入:
预览>页面>产品>字段>字段>值

预览>页面>产品>子产品>产品>字段>字段>值

我需要对按首字母分组的两个值求和。
缩写也位于两个不同的节点下。

这是输入:

<?xml version="1.0" encoding="UTF-8"?>
<preview>
   <page id="6661" templateId="16" templateName="Source">
       <fields>
         <field definitionId="12">
            <name>Sidenavn</name>
            <value>Side11</value>
         </field>
       </fields>
      <product headlineId="6697">
         <fields>
            <field definitionId="608">
               <name>Initialer</name>
               <value>JFR</value>
            </field>
            <field definitionId="621">
               <name>Forv. oms. numeric</name>
               <value>10.00</value>
            </field>
         </fields>
         <subProducts>
            <product headlineId="6697">
               <fields>
                  <field definitionId="608">
                     <name>Initialer</name>
                     <value>LBD</value>
                  </field>
                  <field definitionId="621">
                     <name>Forv. oms. numeric</name>
                     <value>15.00</value>
                  </field>
               </fields>
               <logos/>
            </product>
            <product headlineId="6697">
               <fields>
                  <field definitionId="608">
                     <name>Initialer</name>
                     <value>LBD</value>
                  </field>
                  <field definitionId="621">
                     <name>Forv. oms. numeric</name>
                     <value>20.00</value>
                  </field>
               </fields>
            </product>
            <product headlineId="6697">
               <fields>
                  <field definitionId="608">
                     <name>Initialer</name>
                     <value>JFR</value>
                  </field>
                  <field definitionId="621">
                     <name>Forv. oms. numeric</name>
                     <value>12.00</value>
                  </field>
               </fields>
            </product>
         </subProducts>
      </product>
   </page>
</preview>

我尝试使用/ xsl:for-each-group,如下所示,但只能分别用于产品和子产品。

</xsl:for-each-group>
    <xsl:for-each-group select="//page/product/subProducts/product" group-by="./fields/field[@definitionId='608']/value">
    <xsl:for-each select="current-group()">
</xsl:for-each>
[...]

所以预期结果应该是这样的:
JFR 22
LBD 35

我现在要做的就是分别为“产品”和“子产品”节点汇总和分组值。
结果如下:
JFR 10
LBD 35
JFR 12

0 个答案:

没有答案