#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. 张高兴的 Windows 10 IoT 开发笔记:串口红外编解码模块 YS-IRTM

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub: https://github.c ...

  2. 自学java能不能找到找到一份java工作。

    关于自学Java能不能通过社招找到一份互联网公司Java开发的工作,有无数的人问出这样的问题,答案没有标准的,只能从概率去考虑.有的人可以,有的人不可以,有的人自学就业的概率就是高,有的概率就是低. ...

  3. 基于ko-easyui实现的PC前端模板功能完善

    上一篇博客我向大家介绍了基于ko-easyui实现的开发模板,博客地址:https://www.cnblogs.com/cqhaibin/p/9825465.html#4095185.但在还遗留三个问 ...

  4. 基于Unity的AR开发初探:第一个AR应用程序

    记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到.目前公司有一个App开发的需求,想要融合一下AR到A ...

  5. 「拥抱开源, 又见 .NET」系列第三次线下活动简报

    「拥抱开源, 又见 .NET」 随着 .NET Core的发布和开源,.NET又重新回到人们的视野. 自2016年 .NET Core 1.0 发布以来,其强大的生命力让越来越多技术爱好者对她的未来满 ...

  6. 看看redis中那些好玩的module (sql on redis, bf/cf on redis)

    自从redis加入了module功能之后,redis的生态就很有意思了,每个领域的大佬都会以插件的形式给redis扩展一些新的功能,比如本篇说到的rediSQL,rebloom. 一:rediSQL ...

  7. C#-Xamarin的Activity传值与Fragment引用

    前言 我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器. 在Xamarin里子页面为Fragment,翻译过来是片段的意思. Fragment 下面我们来学习 ...

  8. Cron表达式详解【转】

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...

  9. 第14章 纪元时间转换 - IdentityModel 中文文档(v1.0.0)

    JWT令牌使用所谓的Epoch或Unix时间来表示日期/时间. IdentityModel包含用于DateTime和DateTimeOffset转换到/来自Unix时间的扩展方法: var dt = ...

  10. 模型转换[yolov3模型在keras与darknet之间转换]

    首先借助qqwweee/keras-yolo3中的convert.py和tensorrt例子yolov3_onnx,并重新编写了代码,实现将darknet格式的yolov3的yolov3.cfg和yo ...