使用linq to xml删除xml中的节点

时间:2012-08-16 03:58:46

标签: asp.net xml linq-to-xml

我想使用元素值

从xml文件中删除节点

这是我的xml

 <Employee>
  <User>
    <ID>1</ID>
    <Username>John</Username>
    <Lastname>Smith</Lastname>
  </User>
<User>
    <ID>2</ID>
    <Username>jerry</Username>
    <Lastname>wilson</Lastname>
  </User>
</Employee>

这是我背后的代码

 XDocument doc = XDocument.Load(Server.MapPath(@"~/User.xml"));
            doc.Elements("User")
           .Elements("ID")
           .Where(l => l.Value == textbox1.text)
           .Select(x => x.Parent)
           .Remove();    

我想删除在文本框中输入<user>的{​​{1}}节点 但它不起作用。 你能救我吗?

1 个答案:

答案 0 :(得分:0)

添加doc.Root属性或doc.Descendants("User")以返回后代元素的过滤集合:

1

doc.Root.Elements("User")
           .Elements("ID")
           .Where(l => l.Value == textbox1.text)
           .Select(x => x.Parent)
           .Remove();

2

 doc.Root.Elements("User")
            .Where(p => p.Element("ID").Value == textbox1.text)
            .Remove();
 doc.Save(Server.MapPath(@"~/User.xml"));