zoukankan      html  css  js  c++  java
  • 如何用Treeview树加载xml

    1、新建一个winform项目。

    2、就用默认的Form1做为窗体吧,给这个窗体上加载一个trreeview控件。

    3、Form1的后天代码如下

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;

    namespace TreeBandDingXml
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                // C#读入XML加载到TreeView 当前选中项:TreeView.SelectedNode
                //增加顶级节点:TreeView.Nodes.Add()
                //增加顶级节点的下级节点:TreeView.Nodes[0].Nodes.Add();
                //增加同级节点:TreeView.SelectedNode.Parent.Nodes.Add()
                //增加子节点:TreeView.SelectedNode.Nodes.Add()
                //全部展开:TreeView.ExpandAll()
                //全部收拢:TreeView.CollapseAll()
                //删除选中项:TreeView.Nodes.Remove(treeView1.SelectedNode);  

                //treeView1.SelectedNode.BeginEdit(); 首先在treeview选择事件afterSelect双击
                //在写代码
                //获取TreeView中树视图的深度(从零开始):treeView1.SelectedNode.Level

                //读取XML:

                string XmlFile = Application.StartupPath + "file://xmlfile1.xml/";
                XmlDocument doc = new XmlDocument();
                doc.Load(XmlFile);
                //获取文档的根
                //取得文档的根节点名称:doc.DocumentElement.Name
                XmlNode root = doc.DocumentElement;
                //首先删除所有的树节点
                treeView1.Nodes.Clear();
                //加载数据
                LoadXml(treeView1.Nodes, root);
                treeView1.ExpandAll();
            }

    private void LoadXml(TreeNodeCollection treeNodes, XmlNode xmlNodes)
    {
          string ship_name = string.Empty;

          XmlNode xmlNode = xmlNodes.SelectSingleNode("ship_name");
          if (xmlNode != null && xmlNode.InnerText != "arrangeResult")
               ship_name = xmlNode.InnerText;

          XmlNodeList tidanhao = xmlNodes.SelectNodes("tidanhao");
          TreeNode vTreeNode = null;

          if (string.IsNullOrEmpty(ship_name) && tidanhao.Count == 0)
          {

              //增加根节点
              vTreeNode = treeNodes.Add(xmlNodes.Name);
          }
          else
              if (!string.IsNullOrEmpty(ship_name) && ship_name != "arrangeResult")
          {
              vTreeNode = treeNodes.Add(ship_name);
              vTreeNode.Tag = ship_name;               
          }
          else if (tidanhao != null)
          {
              foreach (XmlNode node in tidanhao)
              {
                   vTreeNode = treeNodes.Add(node.InnerText);
                   vTreeNode.ImageIndex = 2;
                   vTreeNode.SelectedImageIndex = 2;
                   vTreeNode.Tag = node.InnerText;
              }
                   
           }

          foreach (XmlNode vTemp in xmlNodes.SelectNodes("arrangeResult"))
          {
                 LoadXml(vTreeNode.Nodes, vTemp);
          }

    }
          

        }
    }

    4在项目中在新建一个xml文件,文件图如下


    5、文件代码如下:


    <?xml version="1.0" encoding="UTF-8"?>
    -<调度结果查看> -<arrangeResult> <ship_name>番运122</ship_name> -<arrangeResult> <tidanhao>326071863A</tidanhao> </arrangeResult> </arrangeResult> -<arrangeResult> <ship_name>富粤128</ship_name> -<arrangeResult> <tidanhao>10HHP00661</tidanhao> </arrangeResult> </arrangeResult> -<arrangeResult> <ship_name>金龙338</ship_name> -<arrangeResult> <tidanhao>TSGZ10024080/P9KBC0382T</tidanhao> <tidanhao>COSU6031555570</tidanhao> </arrangeResult> </arrangeResult> -<arrangeResult> <ship_name>穗海韵688</ship_name> -<arrangeResult> <tidanhao>TSGZ10018333/P3PQC7169T</tidanhao> </arrangeResult> </arrangeResult> -<arrangeResult> <ship_name>粤安运08</ship_name> -<arrangeResult> <tidanhao>23883141</tidanhao> <tidanhao>GZE1001F0574</tidanhao> </arrangeResult> </arrangeResult> -<arrangeResult> <ship_name>粤安运09</ship_name> -<arrangeResult> <tidanhao>SZE1001F0231</tidanhao> </arrangeResult> </arrangeResult> </调度结果查看>

    6、把做好的xml文件放到debug里面,然后运行程序,结果如下

    7、这个是别人的教程,自己做了一遍留着吧

     

  • 相关阅读:
    SpringBoot JdbcTemplate多数据源
    SpringBoot Mybatis多数据源
    SpringBoot 配置文件2
    SpringBoot 配置文件1
    SpringBoot 日志配置
    乌镇行
    防火墙
    PL/SQL查询结果窗口太小且显示不完全
    python 列表解析
    HTML
  • 原文地址:https://www.cnblogs.com/gouguo/p/2769366.html
Copyright © 2011-2022 走看看