На основании предоставленной вами информации я думаю, что DescendantsAndSelf
должно работать, например, когда я пытаюсь
XElement item = XElement.Parse(@"<MenuItem Id=""m1"">
<MenuItem Id=""m2""></MenuItem>
<MenuItem Id=""m3""></MenuItem>
</MenuItem>");
foreach (XElement menu in item.DescendantsAndSelf())
{
Console.WriteLine("{0}", menu.Attribute("Id").Value);
}
приятно выводит id всех трех элементов:
m1
m2
m3
Если у вас все еще есть проблемы с кодом, который не выполняет то, что вы от него хотите, подумайте, чтобы показать нам достаточно этого кода, чтобы мы могли воспроизвести проблему.