首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么完全删除xml节点

2013-08-01 
如何完全删除xml节点我通过c#代码删除前面三个节点,但是没完全删除,留下了item /,我是想完全删除节点。我

如何完全删除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");

[解决办法]

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


那会儿下班要走,没看清,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);

热点排行