I have a source XML as follows.
<Level>
<E1>
<Date>20230315</Date>
</E1>
<E1>
<Date>20230318</Date>
</E1>
<E2>
<Item>001</Item>
</E2>
</Level>
<Level>
<E1>
<Date>20230316</Date>
</E1>
<E2>
<Item>001</Item>
<E2>
</Level>
<Level>
<E1>
<Date>20240301</Date>
</E1>
<E1>
<Date>20240302</Date>
</E1>
<E2>
<Item>002</Item>
<E2>
</Level>
I used 2 keys :
xsl:key name="item-num-key" match="Level" use="E1/Item"
xsl:key name="item-numdate-key match" match="Level" use="concat(E1/Item,E1/Date)"
xsl:for-each select="key('item-num-key',E1/Item)[generate-id() = generate-id(key('item-numdate-key',concat(E1/Item,E1/Date))[1])]
xsl:sort select="Date" order="descending"
But I didn't get the result what I am expecting.
Expecting result
<Level>
<E1>
<Date>20230318</Date>
<Item>001</Item>
</Level>
<Level>
<E1>
<Date>20240302</Date>
<Item>002</Item>
</Level>
Thank you in advance for your help. Much appreciated.