Это рекурсивно возвращает все родительские элементы узла:
public static IEnumerable<XElement> Parents(this XObject obj)
{
XElement e = obj.Parent;
while (e != null)
{
yield return e;
e = e.Parent;
}
}
Если вам нужен документ, который содержит только узел и его родителей, вам нужно удалить все остальные узлы.