使用dic集合 加载xml文档 并显示至TreeView控件

原创 2013年12月05日 19:46:21
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace oop内测_XMl加载
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        //加载
        public Dictionary<string, Students> dic = new Dictionary<string, Students>();
        //加载xml文档
        public void LoadXMLInfo()
        {
            this.dic.Clear();
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load("School.xml");
            XmlNode xmlNode = xmldoc.DocumentElement;
            foreach (XmlNode xmlOne in xmlNode.ChildNodes)
            {
                Students stu = new Students();
                stu.Id = xmlOne.Attributes["id"].Value;
                stu.Name = xmlOne.SelectSingleNode("name").InnerText;
                stu.Age = int.Parse(xmlOne.SelectSingleNode("age").InnerText);
                stu.Sex = xmlOne.SelectSingleNode("sex").InnerText;
                stu.Fans =int.Parse( xmlOne.SelectSingleNode("fans").InnerText);
                stu.Url = xmlOne["blog"].Attributes["url"].Value;
                this.dic.Add(stu.Id, stu);
            }
        }
        //加载树控件
        public void TreeLoadInfo()
        {
            this.tvNodes.Nodes.Clear();
            TreeNode trOne = null;
            foreach (string item in this.dic.Keys)
            {
                trOne = new TreeNode(item);
                TreeNode tr2 = new TreeNode(dic[item].Name);
                TreeNode tr3 = new TreeNode(dic[item].Age.ToString());
                TreeNode tr4 = new TreeNode(dic[item].Sex);
                TreeNode tr5 = new TreeNode(dic[item].Fans.ToString());
                TreeNode tr6 = new TreeNode(dic[item].Url);             
                this.tvNodes.Nodes.Add(trOne);
                trOne.Nodes.Add(tr2);
                trOne.Nodes.Add(tr3);
                trOne.Nodes.Add(tr4);
                trOne.Nodes.Add(tr5);
                trOne.Nodes.Add(tr6);
                
            }
        }


        private void button1_Click(object sender, EventArgs e)
        {
            LoadXMLInfo();
            TreeLoadInfo();
        }


    }


}


students类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace oop内测_XMl加载
{
   public class Students
    {
        private string id;
        public string Id
        {
            get { return id; }
            set { id = value; }
        }
       private string name;


       public string Name
       {
           get { return name; }
           set { name = value; }
       }
       private string sex;
       public string Sex
       {
           get { return sex; }
           set { sex = value; }
       }
       private int age;


       public int Age
       {
           get { return age; }
           set { age = value; }
       }
       private string url;


       public string Url
       {
           get { return url; }
           set { url = value; }
       }
       private int fans;


       public int Fans
       {
           get { return fans; }
           set { fans = value; }
       }
    }
}

xml文档数据

<?xml version="1.0" encoding="utf-8" ?>
<students>
  <student id="001">
    <name>王菲菲</name>
    <age>20</age>
    <sex>女</sex>
    <fans>159999</fans>
    <blog url="http://www.baidu.com"/>
  </student>
  <student id="002">
    <name>周杰伦</name>
    <age>26</age>
    <sex>男</sex>
    <fans>15159999</fans>
    <blog url="http://www.tencten.com"/>
  </student>
  <student id="003">
    <name>小李子</name>
    <age>26</age>
    <sex>男</sex>
    <fans>9159999</fans>
    <blog url="http://www.xilizi.com"/>
  </student>
  <student id="004">
    <name>王豪</name>
    <age>24</age>
    <sex>男</sex>
    <fans>39999</fans>
    <blog url="http://www.souhu.com"/>
  </student> 
</students>

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何使用多线程加载多个XML文件到TreeView控件

 翻译:秋枫原代码:LoadingXmlInTvMTCode.zip  在很多情况下程序员需要采用多线程来开发应用程序,用户可以在前台操作数据或其他工作,在后台程序正在加载很大的一些文件,而这一过程不...
  • lizhizhe2000
  • lizhizhe2000
  • 2006年10月27日 09:33
  • 677

TreeView控件的加载,遍历递归的应用

       看了许多TREEVIEW的使用方法,发现没有一个适合初次接触.NET中的TREEVIEW的例子,由于以前在VB6中加载TREEVIEW的结构树很简单,只是一个ADD()方法而已,在方法中...
  • yumanqing
  • yumanqing
  • 2006年10月12日 11:44
  • 2109

WPF TreeView叶子太多时显示很慢的解决办法

在WPF中使用DataGrid时当数据过多时
  • porenasckx
  • porenasckx
  • 2014年10月30日 15:37
  • 2999

C#TreeView控件与XML相关操作

在C#的应用开发中,TreeView控件是一种比较常用的控件,主要反映了父子节点之间的关系,由于TreeView控件与XML文件的组织结构比较类似,可以把TreeView控件与XML文件结合使用。Tr...
  • pengshupan
  • pengshupan
  • 2016年02月29日 15:44
  • 2450

使用TreeView遍历磁盘目录

public partial class Form1 : Form { public Form1() { InitializeC...
  • pandani
  • pandani
  • 2011年10月27日 14:35
  • 882

C# treeview控件的使用方法

步骤之一:首先当窗体加载的时候,我们添加上图中所示的节点。C# treeview控件的使用方法步骤之二:当点击“Delete the Selected”按钮时,被选中的节点将被删除。当点击“Edit ...
  • guoliwang
  • guoliwang
  • 2009年10月27日 15:22
  • 1020

C#下动态加载结点的TreeView控件

我在开发中遇到这么一个问题:如果结点数过多时(近万个),使用TreeView控件加载时速度非常慢。我就想能否做到一开始只加载部分结点,当用户翻页时再加载需要的新结点。但我翻了一个TreeView的资料...
  • lldwolf
  • lldwolf
  • 2008年04月04日 17:34
  • 1740

asp.net TreeView控件的用法

html   asp:Panel id="panel1" runat="server" Height="300" ScrollBars="Auto">                         ...
  • chinaly
  • chinaly
  • 2008年09月19日 14:15
  • 5729

解决TreeView控件不能正常显示的问题

今儿个帮公司维护官网,发现了奇怪的问题。进入后台管理的时候,原来的TreeView控件不能正常显示了,只有一堆乱七八糟的文字。刚开始,我以为是浏览器兼容性问题,后来换了几个浏览器再试,结果还是一样。经...
  • dinglang_2009
  • dinglang_2009
  • 2010年12月01日 08:42
  • 4928

C# 系统应用之TreeView控件显示树状磁盘文件目录及加载图标

在C#系统应用毕设U盘防御软件中需要实现文件不可恢复的删除,首先需要实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘文件树状目录并加载相应图标.显示结果如下图所示: 一...
  • xiao190128
  • xiao190128
  • 2015年09月16日 10:44
  • 6538
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用dic集合 加载xml文档 并显示至TreeView控件
举报原因:
原因补充:

(最多只允许输入30个字)