I'm trying to group data based on a given element. In this case i'm trying to group all Elements under a particular Bank Name using XSLT. To streamline output for a downstream process.
I'm using the following XSLT Currently. But I can't seem to capture the elements under each distinct Bank.
<xsl:stylesheet xmlns:xsl="; version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml"/>
<xsl:key name="Bank-Elements" match="CLIENT" use="NAME"/>
<xsl:template match="/">
<GORTT_INT007_IFMIS>
<xsl:element name="TEST">
<xsl:for-each select=".//WorkRelationshipData/PersonDetails">
<xsl:sort select="Bank_Name"/>
<xsl:for-each-group select=".//PayrollRelActionsData/RelActionDetails/EmployeeAssignmentData/PersonalPaymentData_h/PersonalPaymentData/PersonalPaymentDetails" group-by="Bank_Name">
<xsl:variable name="Group" select="current-grouping-key()"/>
<!--<Section>
<xsl:value-of select="Section"/>
</Section>-->
<Bank_Name>
<xsl:value-of select="Bank_Name"/>
</Bank_Name>
<!--<Bank_Code>
<xsl:value-of select="Bank_Code"/>
</Bank_Code>-->
<!--<VARIABLE>
<xsl:value-of select="$Group"/>
</VARIABLE>-->
</xsl:for-each-group>
<xsl:element name="ELEMENT_REC">
<xsl:for-each select=".//PayrollRelActionsData/DummyDetails/PayrollRunResultsData/RunResultDetails[not(ELEMENT_NAME = 'GORTT_Assignment_info')]">
<ELEMENT_NAME>
<xsl:value-of select="ELEMENT_NAME"/>
</ELEMENT_NAME>
<RUN_RESULT_VALUE>
<xsl:value-of select="RUN_RESULT_VALUE"/>
</RUN_RESULT_VALUE>
<PRIMARY_CLASSIFICATION_NAME>
<xsl:value-of select="PRIMARY_CLASSIFICATION_NAME"/>
</PRIMARY_CLASSIFICATION_NAME>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</GORTT_INT007_IFMIS>
</xsl:template>
</xsl:stylesheet>