I have tried using Linq to xml it seems it is not working.in brief i want sorting based on Code attribute in code tag i want the xml as desired one i have tried doing it as below but it is not working Please help me out.
Attempted Code: I have attempted this code i am not sure if it is proper way.
var orderedTabs = document.Root
.Element("component")
.Elements("intial")
.Elements("second")
.Elements("component")
.Elements("observation")
.OrderBy(xtab => (string)xtab.Element("code").Attribute("code").Value)
.ToList();
XML:
<component>
<intial>
<second>
<component>
<observation>
<templateId root="01"/>
<id root="01" />
<code code="BC3" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC1" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC2" />
<statusCode code="completed" />
</observation>
</component>
</second>
</intial>
<intial>
<second>
<component>
<observation>
<templateId root="01"/>
<id root="01" />
<code code="BC6" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC4" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC5" />
<statusCode code="completed" />
</observation>
</component>
</second>
</intial>
</component>
Desired output:
<component>
<intial>
<second>
<component>
<observation>
<templateId root="01"/>
<id root="01" />
<code code="BC1" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC2" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC3" />
<statusCode code="completed" />
</observation>
</component>
</second>
</intial>
<intial>
<second>
<component>
<observation>
<templateId root="01"/>
<id root="01" />
<code code="BC4" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC5" />
<statusCode code="completed" />
</observation>
</component>
<component>
<observation>
<templateId root="01" />
<id root="01" />
<code code="BC6" />
<statusCode code="completed" />
</observation>
</component>
</second>
</intial>
</component>