Вы хотите получить результат text
, как указано вашим элементом <xsl:output method="text"...>
.Поэтому я удалил некоторые из ваших элементов результата, потому что они были лишними.
Остался следующий шаблон с введением данных элемента wd:Report_Data
и итерацией по всем элементам wd:Report_Entry
.
<xsl:template match="wd:Report_Data">
<xsl:value-of select="concat(wd:Report_Entry[1]/wd:CFI_TC_INT006_Global_H,' ',
wd:Report_Entry[1]/wd:Current_Effective_Date,' ',wd:Report_Entry[1]/wd:Worker/wd:CF_TC_Credit_Union_Pay_Deduct,$linefeed)"/>
<xsl:for-each-group select="wd:Report_Entry" group-by="wd:Worker/wd:ID[@wd:type='Employee_ID']">
<xsl:for-each select="current-grouping-key()">
<xsl:variable name="VAR1" select="sum(current-group()/wd:Deduction_Amount)" />
<xsl:if test="$VAR1 > 0">
<xsl:value-of select="current-group()[1]/wd:Worker/wd:CFI_TC_INT006_Global_D" />
<xsl:text> </xsl:text>
<xsl:value-of select="current-group()[1]/wd:Worker/wd:TC_06_INT063"/>
<xsl:text> </xsl:text>
<xsl:value-of select="current-group()[1]/wd:Current_Effective_Date"/>
<xsl:text> </xsl:text>
<xsl:value-of select="current-group()[1]/wd:Worker/wd:TC_009_INT063"/>
<xsl:text> </xsl:text>
<xsl:value-of select="current-group()[1]/wd:Worker/wd:CF_Text_Constant_0"/>
<xsl:text> </xsl:text>
<xsl:value-of select="format-number(current-group()[1]/wd:Related_Calculations/wd:CFI_INT036_Bank_Acc_Number_Extract,'00000000')"> </xsl:value-of>
<xsl:text> </xsl:text>
<xsl:value-of select="current-group()[1]/wd:Worker/CF_Text_Constant_CCD"> </xsl:value-of>
<xsl:text> </xsl:text>
<xsl:value-of select="format-number(current-group()[1]/wd:Deduction_Amount*100,'0000000')"/>
<xsl:text> </xsl:text>
<xsl:value-of select="' '"/>
<xsl:value-of select="$linefeed"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each-group>
<xsl:value-of select="wd:Report_Entry[1]/wd:CFI_TC_Global_T"/>
<xsl:text> </xsl:text>
<count etv:number="rNumber"/>
<xsl:value-of select="format-number(count(wd:Report_Entry),'00000')"/>
<xsl:text> </xsl:text>
<xsl:value-of select="format-number((sum(wd:Report_Entry/wd:Deduction_Amount)*100),'000000000')"/>
<xsl:text> </xsl:text>
<xsl:value-of select="' '"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$linefeed"/>
</xsl:template>
Его результат примерно такой.Поскольку ваш XML неполон, я добавил еще один wd:Report_Entry
с аналогичными значениями.Таким образом, этот результат состоит из двух wd:Report_Entry
записей.Следовательно, результат отличается от вашего примера, но формат соответствует желаемому.
H 240918 CREDIT UNION SSA DEPOST
D 06 240918 009 0 00000025 0002500
D 06 240918 009 0 00000025 0003000
T 00002 000005500