递归XML加载WinForm Treeview

XMLFile1.xml文件如下:

01<?xml version="1.0" encoding="utf-8" ?>
02<root name="rootNode" text="根节点">
03  <node name="node1"  text="节点1">
04    <childNode name="childNode1" text="子节点1">
05      <grandchild name="grandchild1" text="子子节点1"></grandchild>
06      <grandchild name="grandchild2" text="子子节点2"></grandchild>
07      <grandchild name="grandchild3" text="子子节点3"></grandchild>
08      <grandchild name="grandchild4" text="子子节点4"></grandchild>
09    </childNode>
10    <childNode name="childNode1" text="子节点1"></childNode>
11    <childNode name="childNode2" text="子节点2"></childNode>
12  </node>
13  <node name="node2"  text="节点2">
14    <childNode name="childNode1" text="子节点1"></childNode>
15    <childNode name="childNode2" text="子节点2"></childNode>
16    <childNode name="childNode3" text="子节点3"></childNode>
17  </node>
18  <node name="node3"  text="节点3">
19    <childNode name="childNode1" text="子节点1"></childNode>
20    <childNode name="childNode2" text="子节点2"></childNode>
21    <childNode name="childNode3" text="子节点3"></childNode>
22  </node>
23  <node name="node4"  text="节点4">
24    <childNode name="childNode1" text="子节点1"></childNode>
25    <childNode name="childNode2" text="子节点2"></childNode>
26    <childNode name="childNode3" text="子节点3"></childNode>
27  </node>
28</root>

将这个xml文件加载到Winform的treeview上

后台代码如下:

01using System;
02using System.Collections.Generic;
03using System.ComponentModel;
04using System.Data;
05using System.Drawing;
06using System.Text;
07using System.Windows.Forms;
08using System.Xml;
09  
10namespace WindowsApplication1
11{
12    public partial class Form1 : Form
13    {
14        public Form1()
15        {
16            InitializeComponent();
17  
18            XmlDocument doc = new XmlDocument();
19  
20            try
21            {
22                string path = AppDomain.CurrentDomain.BaseDirectory + "XMLFile1.xml";
23                doc.Load(path);
24                treeView1.BeginUpdate();
25                XmlElement xe = (XmlElement)doc.SelectSingleNode("root");
26                TreeNode root = new TreeNode();
27                root.Name = xe.GetAttribute("name");
28                root.Text = xe.GetAttribute("text");
29                root = GetChildNodes(xe, root);
30                treeView1.Nodes.Add(root);
31                treeView1.EndUpdate();
32            }
33            catch (Exception ex)
34            {
35                MessageBox.Show(ex.ToString());
36            }
37        }
38  
39        public TreeNode GetChildNodes(XmlElement xe, TreeNode upNode)
40        {
41            if (xe.HasChildNodes)
42            {
43                foreach (XmlNode node in xe.ChildNodes)
44                {
45                    XmlElement xlt = (XmlElement)node;
46                    TreeNode tn = new TreeNode();
47                    tn.Text = xlt.GetAttribute("text");
48                    tn.Name = xlt.GetAttribute("name");
49                    GetChildNodes(xlt, tn);
50                    upNode.Nodes.Add(tn);
51                }
52            }
53            return upNode;
54        }
55    }
56}

效果如下图:

 
 

2011010418345580.png

转载于:https://www.cnblogs.com/V587/archive/2011/04/08/2008866.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值