我给出代码:
xml:
<?xml version="1.0" encoding="utf-8"?>
<contractPerson>
  <person ID="123">
    <name>王占华</name>
    <phoneNumber>123</phoneNumber>
    <sex>男</sex>
    <department>信息部</department>
  </person>
  <person ID="15829922842">
    <name>齐总</name>
    <phoneNumber>15829922842</phoneNumber>
    <sex>帅哥</sex>
    <department>国防部</department>
  </person>
</contractPerson>
c#代码:
XElement xml = XElement.Load(@"D:\documents and settings\administrator\my documents\visual studio 2010\Projects\IuseSoftSMSCat\IuseSoftSMSCat\bin\Debug\Config\ContractPerson.xml");
            IEnumerable<XElement> deleteNode = from item in xml.Descendants("contractPerson")
                                               where item.Attribute("id").Value.Equals("15829922842")
                                               select item;
            deleteNode.Remove();
            xml.Save(@"D:\documents and settings\administrator\my documents\visual studio 2010\Projects\IuseSoftSMSCat\IuseSoftSMSCat\bin\Debug\Config\ContractPerson.xml");
路径正确,每次运行完,提示文件在编辑器外被更改,可是打开并没有删除,咋回事?

解决方案 »

  1.   

    你这个很混乱啊
    contractPerson元素并没有id属性,运行会报错的你确定你要删除的是contractPerson元素而不是person元素?[code=c#]
                    XDocument doc = XDocument.Load("test.xml");
                    IEnumerable<XElement> deleteNode = from item in doc.Descendants("person")
                                                       where item.Attribute("ID").Value.Equals("15829922842")
                                                       select item;
                    deleteNode.Remove();
                    doc.Save("test.xml");
    [code]
      

  2.   

    [code=C#]
    区分大小写?
    [code]
      

  3.   

    这个我试过了,可以!   XDocument doc = XDocument.Load("test.xml");
       IEnumerable<XElement> deleteNode = from item in doc.Descendants("person")
       where item.Attribute("ID").Value.Equals("15829922842")
       select item;
       deleteNode.Remove();
       doc.Save("test.xml");
      

  4.   

    你的代码select得到的集合是个空的只要你调用了Save方法,不管有没有删掉,都会提醒你已经被修改的。
    文件被按原样重写了一边
      

  5.   

    参见http://blog.csdn.net/jsyhello/article/details/6302382
      

  6.   

    9楼得兄弟,为啥select到的集合是空的?