XML与TreeView控件的交互

    技术2022-05-11  54

    注意:

    本文所提到的XML文件名为2.xml;它置于解决方案的根目录下。内容如下:

    <?xml version="1.0" encoding="utf-8"?><schema xmlns:xs="http://www.xweave.com/xmlns/xmldb/xs1">  <文件管理>    <办公室发文>      <办公室发文>中文</办公室发文>      <办公室发文>asd</办公室发文>    </办公室发文>

        <办公室收文>      <办公室收文>收文1</办公室收文>    </办公室收文>  </文件管理></schema>

    第一个不太成熟的例子(借鉴于网上) :

    建一个新的Windows窗口Form2,拖一个TreeView控件上去,不做任何修改,然后把它的源代码改为如下:

    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;

        public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();

                System.Xml.XmlDocument document = new System.Xml.XmlDataDocument();            document.Load(@"../../2.xml");            populateTreeControl(document.DocumentElement, treeView1.Nodes);        }

            private void populateTreeControl(System.Xml.XmlNode document, System.Windows.Forms.TreeNodeCollection nodes)        {            foreach (System.Xml.XmlNode node in document.ChildNodes)            {                string text;                if (node.Value != null)                    text = node.Value;                else if (node.Attributes != null && node.Attributes.Count > 0)                    text = node.Attributes[0].Value;                else text = node.Name;                TreeNode new_child = new TreeNode(text);                nodes.Add(new_child);                populateTreeControl(node, new_child.Nodes);            }        }    }

    完成之后看到如下图:


    最新回复(0)