可以参考 :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
本文介绍了一种根据特定属性从XML文件中删除节点的方法。通过使用C#语言和XML文档对象模型(XMLDocument),实现了对指定节点的查找与删除,并保存了修改后的XML文件。

1万+

被折叠的 条评论
为什么被折叠?



