XML格式如下<HubStorage>
  <SEQNUM>20100506</SEQNUM>
  <StorageItem HubName="DBN" VendorCode="DDY" Materials="DD0ZY2LC253" State="1" Lfimg="100" Minpcs="2" />
  <StorageItem HubName="DBN" VendorCode="DDY" Materials="DD0ZY2LC000" State="1" Lfimg="100" Minpcs="2" />
</HubStorage>我使用下面代碼進行刪除
  XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load("bookstore.xml");
                XmlNodeList xnl = xmlDoc.SelectSingleNode("HubStorage").ChildNodes;
                foreach (XmlNode xn in xnl)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("Materials") =='DD0ZY2LC253' )
                    {
                        xe.RemoveAll();
                    }
                }
                xmlDoc.Save("bookstore.xml");刪除后還會出現<StorageItem /> <HubStorage>
  <SEQNUM>20100506</SEQNUM>
   <StorageItem HubName="DBN" VendorCode="DDY" Materials="DD0ZY2LC000" State="1" Lfimg="100" Minpcs="2" />
   <StorageItem />
</HubStorage>
請教了

解决方案 »

  1.   

    LZ 你移除的是“DD0ZY2LC253”节点,剩下"DD0ZY2LC000"这个节点很正常啊
      

  2.   

    你只删了xe.GetAttribute("Materials") =='DD0ZY2LC253' 
     <StorageItem HubName="DBN" VendorCode="DDY" Materials="DD0ZY2LC000" State="1" Lfimg="100" Minpcs="2" />记录当然还有了啊
      

  3.   

    我知道 你看下面還有一行   <StorageItem />
      

  4.   

    xe.RemoveAll()是移除当前节点的所有属性,本身不删除。该这句为
    xe.ParentNode.RemoveChild(xe);
      

  5.   

    要想删除该节点,node.ParentNode.RemoveChild(node);