C# Linq到XML删除父节点

C# Linq到XML删除父节点,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我正在尝试从XML中的元素中删除父元素 我的XML: <root> <Element1 ManagementID="10" /> <Users> <UserID ManagementID="10"> <Identification IDValue="1" /> <!-- More elements Here --> </UserID> </Users>

我正在尝试从XML中的元素中删除父元素

我的XML:

<root>
<Element1 ManagementID="10" />
<Users>
    <UserID ManagementID="10">
        <Identification IDValue="1" />
        <!-- More elements Here -->
    </UserID>
</Users>
<!-- More Users elements Here -->
现在,我想删除所有user.Parent.Parent 我的意思是删除元素:

<Users>
    <UserID ManagementID="10">
        <Identification IDValue="1" />
        <!-- More elements Here -->
    </UserID>
</Users>
试试这个:

            List<XElement> users = document.Descendants("Users")
                .Where(user => user.Elements("Identification")
              .Where(el => (string)el.Attribute("IDValue") != myID)
              .Any()).ToList();

           XElement element1 = document.Descendants("Element1").FirstOrDefault();
           element1.ReplaceNodes(users);

请查看Parent.Parent下的XML。我举了一个例子,我想删除元素。我的查询发现元素的父元素是。那么它的父代是。对不起,这就是我所说的Parent.parents。我想它不会删除节点。旧代码只是让用户保留。现在更新了要替换的代码。我知道了,但我正在寻找删除节点。我所做的是筛选没有所需id的行。然后替换为筛选列表。因此,该id已被筛选器删除。我收到消息XDocument不包含XPathSelectElement的定义。是否确定?Root是XDoc的根元素,我正在看Intellisense验证的代码。您确定正在使用最新的代码更新吗?
user.Parent.Parent.Remove()
            List<XElement> users = document.Descendants("Users")
                .Where(user => user.Elements("Identification")
              .Where(el => (string)el.Attribute("IDValue") != myID)
              .Any()).ToList();

           XElement element1 = document.Descendants("Element1").FirstOrDefault();
           element1.ReplaceNodes(users);
var user = document.Root
        .XPathSelectElements("//UserId")
        .FirstOrDefault(userId => userId.Element("Identification").Attribute(XName.Get("IDValue")).Value == myID);