#region 【通过XDocument的方式将Xml文件递归到TreeView控件中】

  //读取Xml文件(XDocument)

  //1.加载Xml文件

  XDocument  document=XDoument.Load("文件名称.xml");

  //2.先获取跟节点

  XElement  rootElement=doucment.Root;

  //3.将Xml文件加载到TreeView的根节点上

  TreeNode rootNode=treeView1.Nodes.Add(rootElement.Name.ToString());

  //通过调用LoadXmlElement() 方法递归加载

  LoadXmlTreeView(rootElement,rootNode.Nodes);

#endregion

//通过XDocument的方式将xml元素递归加载到TreeView上

private void LoadXmlTreeView(XElement rootElement,TreeNodeCollection treeNodeCollection)

{

  //获取根元素rootElement 下的所有子元素

  //rootElement.Elements()

  //遍历rootElement下的所有子元素(直接元素)

  foreach(XElement item in rootElement.Elements())

  {

    if(item.Elements().Count()==0)

    {

      treeNodeCollection.Add(item.Name.ToString()).Nodes.Add(item.Value);

    }else

    {

      //将当前元素加载到TreeView的节点集合中

      TreeNode  node=treeNodeCollection.Add(item.Name.ToString());

      LoadXmlTreeView(item,node.Nodes);

    }

  }

}

#region 【通过XmlDocument的方式将Xml文件递归到TreeView控件中】

  //1.加载xml文件到XMLDocument对象

  XMLDocument   xmldocument= new XmlDocument();

  //将xml加载到XMLDocument对象上

  xmldocument.Load("文件名称.xml");

  //得到xml的根节点(根元素)

  XMLElement  xmlElement= document.DocumentElement;

  //先把xml的跟元素加载到TreeView中

  TreeNode  treenode= treeView1.Nodes.Add(xmlElement.Name);

  //实现递归方法将Xml文件加载到TreeView中

  LoadToTreeXMLDocument(xmlElement,treenode.Nodes);

#endregion

private void LoadToTreeXMLDocument(XmlElement xmlElement , TreeNodeCollection treeNodeCollection)

{

  //喜欢xmlElent下所有子元素加载到treeNodeCollection集合中

  foreach(XmlNode item in  xmlElement.ChilNode)

  {

    //在此之前要判断一下当前节点是什么类型的节点

    if(item.NodeType==XmlNodeType.Elment)

    {

      //如果当前节点是一个“元素”节点,则把当前节点加载到TreeView中

      TreeNode node = treeNodeCollection.Add(item.Name);
      //递归调用
      LoadToTreeViewXmlDocument((XmlElement)item,node.Nodes);
     }
      else if (item.NodeType==XmlNodeType.Text|item.NodeType==XmlNodeType.CDATA)
    {
      treeNodeCollection.Add(item.InnerText);
    }

  }

}

将Xml文件递归加载到TreeView中的更多相关文章

  1. C#遍历XML文件动态加载菜单

    通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...

  2. 省市数据递归加载到TreeView

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. MP实战系列(十八)之XML文件热加载

    你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...

  4. Spring Framework框架解析(1)- 从图书馆示例来看xml文件的加载过程

    引言 这个系列是我阅读Spring源码后的一个总结,会从Spring Framework框架的整体结构进行分析,不会先入为主的讲解IOC或者AOP的原理,如果读者有使用Spring的经验再好不过.鉴于 ...

  5. java动态编译类文件并加载到内存中

    如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...

  6. Tomcat源码分析——SERVER.XML文件的加载与解析

    前言 作为Java程序员,对于Tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载和解析的进行分析. 加载 server.xm ...

  7. android sax解析xml 文件 动态加载标题

    要解决一个问题 : 问题描述为 把标题动态的加载到 listView子布局中 我们首先通过 java程序写一个把标题写到xml文件的程序.这个程序会在以后讲解. 现在截图 已经写好的xm文件格式如下 ...

  8. <context-param> 标签引出的 web.xml 文件的加载顺序 [转]

    代码示例 : <context-param> <param-name>contextConfigLocation</param-name> <param-va ...

  9. Tomcat源码分析——server.xml文件的加载

    前言 作为Java程序员,对于tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载的进行分析. 源码分析 Bootstrap的 ...

随机推荐

  1. spring源码 — 五、事务

    spring提供了可配置.易扩展的事务处理框架,本文主要从一下几个方面说明spring事务的原理 基本概念 事务配置解析 事务处理过程 基本概念 事务隔离级别 在同时进行多个事务的时候,可能会出现脏读 ...

  2. 20190402-display展现、float浮动

    目录 1.display展现 dispaly:"none | block | inline | inline-block | list-item | run-in(主流浏览器不支持) | t ...

  3. css控制元素高度自适应

    可以采用元素定位 + padding 的方式使特定元素高度自适应. css 样式: html,body{ height:100%; margin:; padding:; } .wrap { heigh ...

  4. 土旦:关于display:flex碰上white-space nowrap 影响布局的问题

    背景,做一个前面图片宽度固定,后面宽度自适应,使用到了flex布局,但是想让后面div里文字不换行,超出以点点表示时,这时布局就乱了,查了下,原来flex布局与white-space:nowrap有影 ...

  5. Git来操作GitHub~

    设置用户名(设置一次 以后就不用再设置了) git config --global user.name 'taopanfeng' 设置邮箱(设置一次 以后就不用再设置了) git config --g ...

  6. python线程(二)代码部分

    使用threading创建线程: from threading import Thread def work(name): print(f"我是线程{name}") if __na ...

  7. Windows Server 2016-Hyper-V网络虚拟化概述

    在 Windows Server 2016 和虚拟机管理器中,Microsoft 提供的端到端网络虚拟化解决方案. 有构成了 Microsoft 的网络虚拟化解决方案的五个主要组件: Windows ...

  8. #001 Python 00号作业:关于课程

    请大家继续思考,你希望我们的课程主要涉略哪些方面?你希望我们的课程能够带给你哪些基本的技能?你希望理论课应该怎么上,实验课应该怎么上?对于我们的课程有什么建议或意见 作为一名计算机专业的学生,对于py ...

  9. 6. VIM 系列 - 全局搜索(ctrlsf.vim)

    目录 全局搜索利器 ag.vim 更强大的全局搜索利器 ctrlsf.vim 全局搜索利器 ag.vim 终端上安装ag: sudo apt install silversearcher-ag vim ...

  10. java安装和配置(3.18)

    大家好,我是一名笨笨的程序小白,刚刚学习完C#的基本开发,现在要开始学习java了!我希望在博客园里记录下我的学习日记,我也不敢保证自己会讲的东西多么全面,但是都是比较基础的东西,如果对你也有点点的小 ...