从Xml中删除选定的TreeNode C#
问题描述:
我正在使用C#的Winform,我已经从XML填充Treeview并需要删除树视图选定节点(运行时)。删除事件:从Xml中删除选定的TreeNode C#
TreeNode node = treeView1.SelectedNode;
if (treeView1.SelectedNode != null)
{
if (treeView1.SelectedNode.Parent == null)
treeView1.SelectedNode.Remove();
else if (treeView1.SelectedNode.Parent.Nodes.Count == 1)
treeView1.SelectedNode.Parent.Remove();
else
treeView1.SelectedNode.Remove();
}
XDocument doc = XDocument.Load("menu.xml");
var xElement = (from q in doc.Elements("root")
where q.Attribute("quick").Value == node.Tag.ToString()
select q);
foreach (var a in xElement)
a.Remove();
doc.Save("menu.xml");
那里有我的XML文件是:
<?xml version="1.0" encoding="utf-8"?>
<root>
<quick title="1st Node" />
</root>
答
据我所知,从上面的XML要删除节点:快。试试这个:
doc.Root.Descendants("quick").FirstOrDefault().Remove();
如果你只有一个“快速”节点,这是有效的。
但是可以有多个'快速'节点,所以为了让选定节点在xml中匹配,需要将该节点的唯一属性值与选定节点的相同属性值进行匹配。
doc.Root.Descendants("quick")
.First(x => x.Attribute("title").Value == node.Tag["title"].Tostring())
.Remove();
+0
非常感谢Deepti ... :) – 2014-11-04 11:16:30
您当前的代码有什么问题? – har07 2014-11-04 10:32:42