for-each-groupを使用して値を要約しようとしていますが、for-each-groupがすべての要素を返さないようです。私はPRIORYR、CYCLE、CODEのユニークな組み合わせに基づいてグループ化して合計しようとしています。私の現在のコードは最初のTI_DET要素だけを取得しています。ここで入力されたXMLは次のとおりです。xslt 2.0 for-each-groupがすべての要素を返さない
<TI_DET id="2">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>44.35</AMOUNT>
</TI_DET>
<TI_DET id="3">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>59.52</AMOUNT>
</TI_DET>
<TI_DET id="4">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>20.77</AMOUNT>
</TI_DET>
<TI_DET id="5">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>0.74</AMOUNT>
</TI_DET>
<TI_DET id="6">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>1.48</AMOUNT>
</TI_DET>
<TI_DET id="7">
<PRIORYR>2014</PRIORYR>
<CYCLE>1</CYCLE>
<CODE>TAX</CODE>
<AMOUNT>1.31</AMOUNT>
</TI_DET>
そして、ここでは私の現在のコードは次のとおりです。
<xsl:for-each-group select="/ns1:GetChargesResponse/PROPERTY/TI_DETS/TI_DET" group-by="PRIORYR">
<xsl:sort select="PRIORYR" data-type="text" order="ascending"/>
<xsl:for-each-group select="current-group()" group-by="CYCLE">
<xsl:sort select="CYCLE" data-type="text" order="ascending"/>
<xsl:for-each-group select="current-group()" group-by="CODE">
<xsl:sort select="CODE" data-type="text" order="ascending"/>
<xsl:for-each-group select="current-group()" group-by="AUTH">
<client:Charges>
<client:Description>
<xsl:value-of select="CODE"/>
</client:Description>
<client:TaxYear>
<xsl:value-of select="PRIORYR"/>
</client:TaxYear>
<client:Amount>
<xsl:value-of select="sum(AMOUNT)"/>
</client:Amount>
<client:Notes>
<xsl:value-of select="concat(PRIORYR,';',ROLLTYPE,';',CYCLE,';',CODE)"/>
</client:Notes>
<client:RedemptionCertificateNumber>
<xsl:value-of select="/ns1:GetChargesResponse/ns1:GetChargesResponse"/>
</client:RedemptionCertificateNumber>
<client:PayType>
<xsl:text disable-output-escaping="no">FUL</xsl:text>
</client:PayType>
<client:TaxCycle>
<xsl:value-of select="CYCLE"/>
</client:TaxCycle>
</client:Charges>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:for-each-group>
思考?
複数のグループを持つ例がはるかに便利です。 –