Well... your xml is not well formed. So, based on your example data, i have created simple sample:
string xcontent = @"<?xml version='1.0' encoding='UTF-8'?>
<category>
<aaa>
<bbb>
<ccc>
<ddd>
<eee>
<abc>name</abc>
<cde>student</cde>
<fff>
<fgh>phone</fgh>
<hij>address</hij>
</fff>
</eee>
</ddd>
</ccc>
</bbb>
</aaa>
</category>";
string selectedNode = "eee";
XDocument xdoc = XDocument.Parse(xcontent);
var result = xdoc.Descendants(selectedNode)
.Descendants()
.Select(x=>new
{
nodeName = x.Name.ToString(),
nodeValue = x.Value.ToString()
});
foreach(var a in result)
{
Console.WriteLine("{0} - {1}", a.nodeName, a.nodeValue);
}
Returns:
abc - name
cde - student
fff - phoneaddress
fgh - phone
hij - address