Linq to XML删除父节点

时间:2017-10-27 16:12:07

标签: c# xml linq-to-xml

我试图从XML中的元素中删除父级。

我的XML:

XElement user = (from el in document.Root.Elements("Users").Elements("UserID ").Elements("Identification")
                   where (string)el.Attribute("IDValue") == myID
                   select el).FirstOrDefault();

我发现我的用户是我的IDValue:

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

现在,我想删除所有user.Parent.Parent 我的意思是删除元素:

user.Parent.Parent.Remove()

**我将拥有许多用户元素,这就是为什么我首先要查找IDValue

我找到了需要它的解决方案: 我已经从我的linq获得了节点

send_data

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-2)

试试这个:

            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);