xml操作之根据2个不节点属性删除节点

来源:互联网 发布:windows 锁屏快捷键 编辑:程序博客网 时间:2024/06/07 10:02

可以参考 :http://blog.csdn.net/milijiangjun/article/details/78502774

根据xml 的需求,会设计到的部分如下: 例如根据不同的的节点属性找到节点,然后进行删除xml 中指定的节点。

首先找到节点,然后进行删除操作如图


代码如下:

    #region 开始进行修改xml 文件            errJournal.writeLog("删除节点开始");            if (File.Exists(file))            {                #region 文件存在 开始查找删除                try                {                    XmlDocument xmlDoc = new XmlDocument();                    XmlReaderSettings xmlrsetting = new XmlReaderSettings();                    xmlrsetting.IgnoreComments = true;                    xmlDoc.Load(file);                    //得到根节点                    XmlNode xn = xmlDoc.SelectSingleNode("krpano");                    //得到根节点的所有子节点                    XmlNodeList xnl = xn.ChildNodes;                    #region 内部逻辑部分 开始进行找热点删除                    XmlNodeList xmllistMoveHo = xmlDoc.SelectNodes("//hotspot");                    int Count = xmllistMoveHo.Count;                    foreach (XmlNode item in xmllistMoveHo)                    {                        XmlElement xe = item as XmlElement;                        string name = xe.Name;                        if (xe.GetAttribute("ath") == Dath && xe.GetAttribute("atv") == Datv) {                            xe.RemoveAll();                        }                       // string Checks = string.Format("//hotspot[@ath='{0}' and @atv='{1}']",Dath,Datv).ToString();                        //string Checks = string.Format("//hotspot[@ath='{0}']", Dath, Datv).ToString();                        //string Checks2 = string.Format("//hotspot[@ath='{1}']", Dath, Datv).ToString();                        //XmlNodeList MoveHost = item.SelectNodes(Checks);                        //XmlNodeList MoveHost2 = item.SelectNodes(Checks2);                        //for (int i = 0; i < MoveHost.Count; i++)                        //{                        //    var c = "123";                        //    for (int j = 0; j < MoveHost2.Count; j++)                        //    {                        //        xe.RemoveChild(MoveHost2[j]);                        //    }                        //}                                        }                                       #endregion                    xmlDoc.Save(file);                    return true;                }                catch (Exception e)                {                    errJournal.writeLog("修改文件时候出错:" + e.Message); return false;                }                #endregion            }            else            {                errJournal.writeLog("修改的文件不存在"); return false;            }            errJournal.writeLog("删除节点结束");            #endregion