日期:2014-05-17  浏览次数:20792 次

如何完全删除xml节点
我通过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>

------解决方案--------------------
 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");

------解决方案--------------------