I want to do one transformation using XSLT. As per below sample, there are multiple EmpRecord available and each EmpRecord contains EmpDept and Profile of available employees under that Department.
XML:
<Employee>
<EmpRecord>
<EmpDept>Accounting</EmpDept>
<EmpData>
<Name>Joy</Name>
<Age>32</Age>
</EmpData>
</EmpRecord>
<EmpRecord>
<EmpDept>Finance</EmpDept>
</EmpRecord>
<EmpRecord>
<EmpDept>IT</EmpDept>
<EmpData>
<Name>Sam</Name>
<Age>27</Age>
</EmpData>
<EmpData>
<Name>John</Name>
<Age>25</Age>
</EmpData>
<EmpData>
<Name>Ricky</Name>
<Age>31</Age>
</EmpData>
</EmpRecord>
</Employee>
Expected Output :
<Employee>
<EmpRecord>
<Department>Accounting</Department>
<EmpData>
<EmpName>Joy</EmpName>
<Age>32</Age>
</EmpData>
</EmpRecord>
<EmpRecord>
<Department>IT</Department>
<EmpData>
<EmpName>Sam</EmpName>
<Age>27</Age>
</EmpData>
<EmpData>
<EmpName>John</EmpName>
<Age>25</Age>
</EmpData>
<EmpData>
<EmpName>Ricky</EmpName>
<Age>31</Age>
</EmpData>
</EmpRecord>
</Employee>
I am able to get all available EmpData but unable to fetch EmpDept.
XSLT used:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Employee>
<xsl:for-each select="/Employee/EmpRecord/EmpData">
<Department><xsl:value-of select="./EmpDept"/></Department>
<EmpData>
<EmpName><xsl:value-of select="./Name"/></EmpName>
<Age><xsl:value-of select="./Age"/></Age>
</EmpData>
</xsl:for-each>
</Employee>
</xsl:template>
</xsl:stylesheet>
So I want only those EmpDept which has at least one employee available.