删除XML节点问题 急!C#
- XML code
<?xml version="1.0" encoding="gb2312"?><viewer interval="4000" isRandom="1"> <item title="yahooo" img="images/02.jpg" url="http://www.codepub.com/" target="_blank" /> <item title="pata" img="images/03.jpg" url="http://www.codepub.com/" target="_blank" /> <item title="music" img="images/04.jpg" url="http://www.codepub.com/" target="_blank" /> <item title="togetoge" img="images/05.jpg" url="http://www.codepub.com/" target="_blank" /> <item title="炳超" img="images/bing.jpg" url="html://www.bingchao.com" target="_blank" /></viewer>
我是要删除title的值为炳超的这行记录,移除 <item title="炳超" img="images/bing.jpg" url="html://www.bingchao.com" target="_blank" /> 。
我用下面的方法删除会留下<item />标记,我是要全部删除整行,请问怎么实现?
- C# code
xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath("viewerData.xml")); XmlNodeList xnl = xmlDoc.SelectSingleNode("viewer").ChildNodes; foreach (XmlNode xn in xnl) { XmlElement xe = (XmlElement)xn; if ( xe.GetAttribute("title")== “炳超”) { xe.RemoveChild(xn);//删除该节点的全部内容 break; } } xmlDoc.Save(Server.MapPath("viewerData.xml"));//保存 [解决办法]
xe.RemoveChild(xn);
改成
xe.ParentNode.RemoveChild(xn);
还有也许会有编码的问题,把你的文件保存为UTF-8,并且把
<?xml version="1.0" encoding="gb2312"?>
改成
<?xml version="1.0" encoding="UTF-8"?>