I need to fetch the Description value from the multiple PlanDetail using <xsl:each
Input xml I'm having:
<PlanDetails>
<PlanDetail>
<Number>1</Number>
<Description>Management</Description>
</PlanDetail>
<PlanDetail>
<Number>2</Number>
<Description>Employees</Description>
</PlanDetail>
<PlanDetail>
<Number>1</Number>
<Description>Management</Description>
</PlanDetail>
<PlanDetail>
<Number>2</Number>
<Description>Employees</Description>
</PlanDetail>
</PlanDetails>
Xsl I have used:
<xsl:template match="PlanDetails">
<xsl:variable name="Number" select="PlanDetails/PlanDetail/Number"/>
<xsl:for-each select="PlanDetails/PlanDetail[Number=$Number][1]">
<row>
<entry>
<p>Class
<xsl:value-of select="Number"/>:
<xsl:value-of select="Description"
/>
</entry>
</row>
</xsl:for-each>
</xsl:template>
I'm getting the below output:
<row>
<entry>
<p>Class 1: Management</p>
</entry>
<entry>
<p>Class 2: Employees</p>
</entry>
<entry>
<p>Class 1: Management</p>
</entry>
<entry>
<p>Class 2: Employees</p>
</entry>
</row>
Expected output:
<row>
<entry>
<p>Class 1: Management</p>
</entry>
<entry>
<p>Class 2: Employees</p>
</entry>
</row>
As I'm having large number of I need to fetch the class number 1 of first plandetails and class number 2 of first plandetails.
Use <xsl:for-each-group select="PlanDetails/PlanDetail" group-by="Number"><row>..</row></xsl:for-each-group>
.