xml 递归 生成treeView

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;

转载于:https://www.cnblogs.com/lixue7/p/3312102.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值