街道管理

本文介绍如何使用C#解析XML文件,并通过TreeView控件展示数据。文章详细讲解了利用XmlDocument对象读取XML文件内容的过程,以及如何通过递归方式构建树形结构,并在用户选择不同节点时更新右侧文本框中的信息。
摘要由CSDN通过智能技术生成

    一:搭建窗体

         所需控件:TreeView、Label、TextBox

          效果示图:

                          


  二:项目要求

     1. 点击左侧树状菜单其中内容,右侧则将其所点信息输出显示

     2.创建表示地址信息的实体类,并使用泛型集合保存XML文件中的信息。


  三:项目分析+代码实现

        1.解析xml文件,将内容绑定到TreeView控件上。(难点,也是该项目的核心所在)

            既然要解析xml,在C#编程中,我们就要用到XmlDocument对象来获取XML文件中的节点值,

            从上图可以看到,点击每个不同的节点,右侧TextBox控件的Text会呈现不同的值,我们要怎么

            来实现这一功能呢?这里我就用foreach循环来实现。

              

             //解析xml文件

            XmlDocument xml = new XmlDocument();
            xml.Load("Address.xml"); //获取xml文件路径
            XmlNode node1 = xml.DocumentElement; //获取xml文件根节点
            string name1 = node1.Attributes["name"].Value;//获取该节点的值
            TreeNode node2 = new TreeNode(name1);
            treeView1.Nodes.Add(node2);//获取树节点集合
            //获取节点的所有子节点
            foreach (XmlNode  item in node1.ChildNodes )
            {
                string name2=item .Attributes["name"].Value;
                TreeNode node3 = new TreeNode(name2);
                node2.Nodes.Add(node3);

                foreach (XmlNode  item2 in item.ChildNodes )
                {    
                    //获取该节点值
                    string name3=item2.Attributes["name"].Value ;
                    string smid=item2.Attributes["smid"].Value ;
                    TreeNode node4 = new TreeNode(name3);
                    node3.Nodes.Add(node4);

                    foreach (XmlNode  item3 in item2.ChildNodes )
                    {
                        TreeNode node5 = new TreeNode(item3 .InnerText );
                        node4.Nodes.Add(node5);//获取树节点对象集合

                        if (item3.Name == "fjname")//当在派生类中被重写时,获取节点限定名
                        { 
                            DiZhi dz=new DiZhi ();
                            dz.Name = name1;
                            dz.Juwei = name2;
                            dz.Jianzhu = name3;
                            dz.Fjname = item3.InnerText;
                            node5.Tag = dz;
                        }
                       
                        
                        
                    }


        2.接下来就是TreeView单击事件了。

                 

 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (treeView1.SelectedNode.Level == 3)
            {

                DiZhi st = (DiZhi)treeView1.SelectedNode.Tag;
                txtjiedao.Text = st.Name;
                txtjuweihui.Text = st.Juwei;
                txtloudao.Text = st.Jianzhu;
                txtfangjianhao.Text = st.Fjname;

            }
          

         
        }
 

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值