可以参考 :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