如何选择某个元素的所有父元素?

时间:2011-10-07 08:58:40

标签: c# linq linq-to-xml

是否有一种简单的方法可以选择某个级别以上的所有节点?

或者唯一的解决办法是删除该元素的子元素吗?

1 个答案:

答案 0 :(得分:1)

以递归方式返回节点的所有父元素:

public static IEnumerable<XElement> Parents(this XObject obj)
{
    XElement e = obj.Parent;
    while (e != null)
    {
        yield return e;
        e = e.Parent;
    }
}

如果您想要一个仅包含节点及其父节点的文档,则需要删除所有其他节点。