C#winform如何将xml文件绑定到treeview
最近使用到了xml文件,需要把xml文件绑定到treeview。C#winform treeview不同于asp.net treeview,asp.net可以直接绑定到xml文件,而winform却不行。这需要遍历xml文件节点,把相应的信息读取出来,再赋值到treeview树形节点。代码及思路如下:
1、首先创建xml文件,存储树节点信息。
<?xml version="1.0" encoding="utf-8" ?> <root name="根节点"> <node name="管理员"> <node name="用户管理" /> <node name="商品管理"/> <node name="服务员管理"> <node name="工资发放"/> <node name="休假"/> <node name="补贴"/> </node> </node> <node name="顾客"></node> </root>
2、如何快速读取xml文件?这里可以使用到递归的方法去实现
private void FillPermissionTree(TreeNode parentTRN, XmlNodeList xmlNLChild) { foreach (XmlNode xmlNChild in xmlNLChild) { TreeNode childTRN = new TreeNode(); childTRN.Text = xmlNChild.Attributes["name"].Value; parentTRN.Nodes.Add(childTRN); XmlNodeList xmlNLGrandsun = xmlNChild.ChildNodes; FillPermissionTree(childTRN, xmlNLGrandsun); } } private void InitTreeView(TreeView tv,string filename) { XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlNode root = doc.DocumentElement; XmlNodeList nodelist2 = root.ChildNodes; TreeNode rootNode = new TreeNode(); //第一层 rootNode.Text = root.Attributes["name"].Value; tv.Nodes.Add(rootNode); XmlNodeList childXmlNL = root.ChildNodes; FillPermissionTree(rootNode, childXmlNL); }
这样就可以实现将xml文件绑定到C#winform treeview
效果图(因现在无法截图)略
但是如果你加上注释语句的话,上面程序就会出现异常提示,只要加上
if (xmlNChild.OuterXml.StartsWith("<!--") || xmlNChild.OuterXml.StartsWith("-->")) continue;