cTreeList与Xml操作结合(2)

2021-09-24 11:41

}

if (node.Nodes.Count > 0)

{

this.LocateNodeWithValue(node.Nodes, nodeValue);

}

}

}

// 删除上述方法定位到的节点

private void DeleteNode(TreeNodeCollection nodes, string valueToDelete)

{

foreach (TreeNode node in nodes)

{

if (node.Tag.ToString() == valueToDelete)

{

nodes.Remove(node);

this.listNodesLocated.Items.Remove(node.Text);

}

else if (node.Nodes.Count > 0)

{

this.DeleteNode(node.Nodes, valueToDelete);

} } } 保存TreeView的节点到XML文件中 把编辑后的TreeView

中的TreeNode类型的节点转换成XmlNode类型节点保存到XML文件中,该XML文件就是最初选择加载的XML文件,在保存之前要先删除XML

中TestTreeView根节点下的所有子节点,主要方法如下:

// 保存主方法

private void SaveTreeNodes(string filePath)

{

if (this.xmlDoc != null)

{

XmlNode root = this.xmlDoc.SelectSingleNode("TestTreeView");

// 删除根节点下的所有原有节点

root.RemoveAll();

this.ConvertTreeNodesToXmlNodes(this.treeMain.Nodes, root);

this.xmlDoc.Save(this.strXmlPath);

MessageBox.Show("保存成功!", "信息", MessageBoxButtons.OK, rmation); }

}

// 把TreeNode转换成对应的XmlNode

private void ConvertTreeNodesToXmlNodes(TreeNodeCollection treeNodes, XmlNode xmlNode) {

XmlDocument doc = xmlNode.OwnerDocument;

foreach (TreeNode treeNode in treeNodes)

{

XmlNode newElement = null;

XmlAttribute attrValue = null;

newElement = doc.CreateNode(XmlNodeType.Element, "TestNode", "");

// Set "nodeText"

attrValue = doc.CreateAttribute("nodeText");

attrValue.Value = treeNode.Text;

newElement.Attributes.Append(attrValue); // Set "nodeValue" attrValue = doc.CreateAttribute("nodeValue"); attrValue.Value = treeNode.Tag.ToString(); newElement.Attributes.Append(attrValue);

xmlNode.AppendChild(newElement);

if (treeNode.Nodes.Count > 0)

{

this.ConvertTreeNodesToXmlNodes(treeNode.Nodes, newElement);

}

}

}

这个Demo中的有些方法还有待改善,希望大家多给意见!

这是本人的第一篇Blog文章,从今天起我要坚持写一些东西,把在工作中用到的方法以及问题整理出来,和大家分享,借此机会来巩固自己的所学的知识,也希望能交到很多志同道合的朋友!谢谢


cTreeList与Xml操作结合(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高三数学第一轮复习章节测试10-3

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: