Reputation: 232
I am trying to convert a xml file to another using XSLT. As I am a quite newbie to this please help me to create xslt to transform below input xml file to output xml file. Thanks in advance.
Input XML
<?xml version="1.0" encoding="UTF-8"?>
<title>
<subtitle1>
<OrganizationDetails>
<OrgName>qwe</EmpNumber>
<OrgAddress>asdfg 123</EmpName>
</OrginzationDetails >
</subtitle1>
<subtitle2>
<ResourceDetails>
<EmpNumber>1</EmpNumber>
<EmpName>xyz</EmpName>
</ResourceDetails>
<ResourceDetails>
<EmpNumber>2</EmpNumber>
<EmpName>abc</EmpName>
</ResourceDetails>
<ResourceDepartment>
<EmpNumber>1</EmpNumber>
<DepartmentNo>IT</DepartmentNo>
</ResourceDepartment>
<ResourceDepartment>
<EmpNumber>2</EmpNumber>
<DepartmentNo>SALES</DepartmentNo>
</ResourceDepartment>
</subtitle2>
</title>
Expected Output XML
<?xml version="1.0" encoding="UTF-8"?>
<title>
<subtitle1>
<OrginzationDetails>
<OrgName>qwe</EmpNumber>
<OrgAddress>asdfg 123</EmpName>
</OrginzationDetails >
</subtitle1>
<subtitle2>
<ResourceDetails>
<EmpNumber>1</EmpNumber>
<EmpName>xyz</EmpName>
</ResourceDetails>
<ResourceDepartment>
<EmpNumber>1</EmpNumber>
<DepartmentNo>IT</DepartmentNo>
</ResourceDepartment>
</subtitle2>
</title>
<title>
<subtitle1>
<OrginzationDetails>
<OrgName>qwe</EmpNumber>
<OrgAddress>asdfg 123</EmpName>
</OrginzationDetails >
</subtitle1>
<subtitle2>
<ResourceDetails>
<EmpNumber>2</EmpNumber>
<EmpName>abc</EmpName>
</ResourceDetails>
<ResourceDepartment>
<EmpNumber>2</EmpNumber>
<DepartmentNo>SALES</DepartmentNo>
</ResourceDepartment>
</subtitle2>
</title>
Upvotes: 0
Views: 219
Reputation: 163262
The essence of the solution is
<xsl:for-each-group select="/title/subtitle/*" group-by="EmpNumber">
<title>
<subtitle>
<xsl:copy-of select="current-group()"/>
...
Upvotes: 1