<?xml version="1.0" encoding="utf-8"?>
<user>
  <pereson>
      <id>201007181106159248</id>
    <titles>龟头正雄</titles>
    <linkURL>http://www.gumeipost.com</linkURL>
    <datetimes>2010-07-18</datetimes>
    <sorts>18</sorts>
  </pereson>
</user>//删除代码
                XmlDocument xdt = new XmlDocument();
                xdt.Load(Server.MapPath("~/XMLFile/LinkInfo.xml"));
                XmlNodeList xnl = xdt.SelectSingleNode("user").ChildNodes;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("id") == id)
                    {
                        // xe.RemoveAll(); 这句只删除<pereson></pereson>里面的属性
                        xdt.SelectSingleNode("user").RemoveChild(xn);  //这句是连同pereson一起删除
                        break;
                    }
                }
                xdt.Save(Server.MapPath("~/XMLFile/LinkInfo.xml"));//保存
为什么删除不了呢?

解决方案 »

  1.   

    XmlNodeList xnl=xmlDoc.SelectSingleNode("/user/pereson").ChildNodes;   
      foreach(XmlNode xn in xnl)   
      {   
       XmlElement xe=(XmlElement)xn;   
       if(xe.GetAttribute("")=="")   
       {   
        xe.RemoveAll();//删除该节点的全部内容   
        }   
      }   
     xmlDoc.Save("");   
      

  2.   

    删除了保存是不是要重新加载一下的,我记得那个web.config别改变了以后好像VS开发工具问你是不是要重新加载一下。
      

  3.   

     string str=@"<?xml version=""1.0"" encoding=""utf-8""?>
    <user>
      <pereson>
      <id>201007181106159248</id>
      <titles>龟头正雄</titles>
      <linkURL>http://www.gumeipost.com</linkURL>
      <datetimes>2010-07-18</datetimes>
      <sorts>18</sorts>
      </pereson>
    </user>
    ";
                XmlDocument dom = new XmlDocument();
                dom.LoadXml(str);
                XmlNode node = dom.SelectSingleNode("//user/pereson/id[.='201007181106159248']");
                if (node != null)
                {                node.ParentNode.ParentNode.RemoveAll();
                }
                dom.Save(Response.OutputStream);//保存
                Response.End();
      

  4.   

    我搞出来了,谢谢各位,
    以下是代码
     XDocument xdoc = XDocument.Load(Server.MapPath("~/XMLFile/LinkInfo.xml"));
                var querys = from p in xdoc.Descendants("pereson") where(p.Element("id").Value == id) select p;
                XElement nowele = querys.First<XElement>();
                nowele.Remove();
                xdoc.Save(Server.MapPath("~/XMLFile/LinkInfo.xml"));
      

  5.   

    修正一下,另你的person写错了,害我找了半天错误  string str= @"<?xml version=""1.0"" encoding=""utf-8""?>
    <user>
      <pereson>
      <id>201007181106159248</id>
      <titles>龟头正雄</titles>
      <linkURL>http://www.gumeipost.com</linkURL>
      <datetimes>2010-07-18</datetimes>
      <sorts>18</sorts>
      </pereson>
     <pereson>
      <id>201007181106159249</id>
      <titles>龟头正雄2222222</titles>
      <linkURL>http://www.gumeipost.com</linkURL>
      <datetimes>2010-07-18</datetimes>
      <sorts>18</sorts>
      </pereson>
    </user>
    ";
                XmlDocument dom = new XmlDocument();
                dom.LoadXml(str);
                XmlNode node = dom.SelectSingleNode("//user/pereson/id[.='201007181106159248']");
                if (node != null)
                {               XmlNode nodePreson =  node.ParentNode;
                   nodePreson.ParentNode.RemoveChild(nodePreson);
                }
                dom.Save(Response.OutputStream);//保存
                Response.End();