我通过c#代码删除前面三个节点,但是没完全删除,留下了<item />,我是想完全删除节点。我在网上看到都是这样写的,都没完全删除节点。所以请教大家。c#代码如下XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(strFilePath);
XmlNodeList xnl = xmlDoc.SelectSingleNode("Data").ChildNodes;
xnl[0].RemoveAll(); ...........
xmlDoc.Save(strFilePath);
 //后来我将xnl[0].RemoveAll();改成也是一要的效果:
XmlElement xe = (XmlElement)xnl[0];
xe.RemoveAll(); 
 xml文件如下<?xml version="1.0" encoding="utf-8"?>
<Data>
  <item ReaderId="1" ReadName=""/>
  <item ReaderId="1" ReadName=""/>
  <item ReaderId="1" ReadName=""/>
  <item ReaderId="1" ReadName=""/>
  <item ReaderId="1" ReadName=""/>
</Data> 删除后的效果:
 
<?xml version="1.0" encoding="utf-8"?>
<Data>
  <item />
  <item />
  <item />
  <item ReaderId="1" ReadName="白瀚文"/>
  <item ReaderId="1" ReadName="白瀚文"/>
</Data>

解决方案 »

  1.   

    XmlNodeList xnl = xmlDoc.SelectSingleNode("Data");
    xnl.RemoveAll();
    xmlDoc.Save(strFilePath);
      

  2.   

    XmlNode xn = xmlDoc.SelectSingleNode("Data"); 
    xn.RemoveAll(); 
    xmlDoc.Save(strFilePath);
      

  3.   

    修改前,我日哦,这个不好排版<?xml version="1.0" encoding="utf-8"?> 
    <Data> 
      <item ReaderId="1" ReadName=""/>
      <item ReaderId="1" ReadName=""/>
      <item ReaderId="1" ReadName=""/>
      <item ReaderId="1" ReadName=""/> 
      <item ReaderId="1" ReadName=""/> 
    </Data>
    修改后  <?xml version="1.0" encoding="utf-8"?>
     <Data> 
      <item /> 
      <item />
      <item />
       <item ReaderId="1" ReadName="白瀚文"/>
       <item ReaderId="1" ReadName="白瀚文"/>
     </Data> 
      

  4.   

    回楼上几个,共有5个同级节点,但我只删前三个,关键前三个内容删除了,但还留下了<item />
    <Data>
      <item />
      <item />
      <item />
      <item ReaderId="1" ReadName="白瀚文"/>
      <item ReaderId="1" ReadName="白瀚文"/>
    </Data>
      

  5.   

     XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load("test.xml");
                XmlNode node = xmlDocument.SelectSingleNode("Data");
                node.RemoveAll();
                xmlDocument.Save("test.xml");
      

  6.   

    楼上,你这样不是把<Data>下所有节点全删了吗
      

  7.   

    如果是想删除data下面的符合规则的,自己遍历循环删除撒。。
      

  8.   

     XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load("test.xml");
                XmlNodeList nodeList = xmlDocument.SelectSingleNode("Data").ChildNodes;            for (int i = 0; i < 3; i++)//删除3次,自己处理
                {
                    nodeList[0].ParentNode.RemoveChild(nodeList[0]);
                }
                xmlDocument.Save("test.xml");
      

  9.   


    那会儿下班要走,没看清,sorry
    缩进伤不起
    XmlDocument xmlDocument = new XmlDocument();            
    xmlDocument.Load("test.xml");
    var praentNode = xmlDocument.SelectSingleNode("Data");       
    XmlNodeList nodeList = praentNode.ChildNodes;
    for (int i = 0; i < Math.Min(3, nodeList.Length); i++)
    {                
        parentNode.RemoveChild(nodeList[i]);         
    }               
    xmlDoc.Save(strFilePath);