将Xml文件递归加载到TreeView中
#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中的更多相关文章
- C#遍历XML文件动态加载菜单
通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...
- 省市数据递归加载到TreeView
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- MP实战系列(十八)之XML文件热加载
你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...
- Spring Framework框架解析(1)- 从图书馆示例来看xml文件的加载过程
引言 这个系列是我阅读Spring源码后的一个总结,会从Spring Framework框架的整体结构进行分析,不会先入为主的讲解IOC或者AOP的原理,如果读者有使用Spring的经验再好不过.鉴于 ...
- java动态编译类文件并加载到内存中
如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...
- Tomcat源码分析——SERVER.XML文件的加载与解析
前言 作为Java程序员,对于Tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载和解析的进行分析. 加载 server.xm ...
- android sax解析xml 文件 动态加载标题
要解决一个问题 : 问题描述为 把标题动态的加载到 listView子布局中 我们首先通过 java程序写一个把标题写到xml文件的程序.这个程序会在以后讲解. 现在截图 已经写好的xm文件格式如下 ...
- <context-param> 标签引出的 web.xml 文件的加载顺序 [转]
代码示例 : <context-param> <param-name>contextConfigLocation</param-name> <param-va ...
- Tomcat源码分析——server.xml文件的加载
前言 作为Java程序员,对于tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载的进行分析. 源码分析 Bootstrap的 ...
随机推荐
- java一个大接口拆用多线程方式拆分成多个小接口
问题引入 目的:我们的接口A 分别调用了a1 a2 a3 三个接口,最终返回值是 a1的返回值+a2的返回值+a3的返回值 如果同步执行 a1 a2 a3 然后结果相加 很慢 . 如果异步执行 无法 ...
- 再谈腾讯云centos服务器不能登录的解决过程
上篇文章谈到腾讯云centos服务器不能登录,通过查看监控信息,cpu使用过高,再腾讯云页面使用VNC方式直接登录,然后根据提示信息,关闭导致内存溢出的进程,从而解决问题. 1 问题再现 昨天刚解决了 ...
- 循环神经网络(Recurrent Neural Network,RNN)
为什么使用序列模型(sequence model)?标准的全连接神经网络(fully connected neural network)处理序列会有两个问题:1)全连接神经网络输入层和输出层长度固定, ...
- asp.net core系列 44 Web应用 布局
一.概述 MVC的视图与Razor页面经常共享视觉和程序元素,通过使用布局来完成,布局还可减少重复代码.本章演示了以下内容的操作方法:(1)使用通用布局,(2)自定义布局,(3) 共享指令,(4)在呈 ...
- Stackoverflow上有哪些声望高or值得关注的国人
Stackoverflow上有哪些声望高/值得关注的国人? 以下回答并不严格按照 Reputation 排名来列,也不收录不确定是Chinese(中国人或华人)的用户,欢迎补充- 1.李杨 @Li L ...
- Linux创建普通用户
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 1.创建用户,-m表示同时创建用户家目录 sudo useradd -m hadoop 2.为创建的hadoop用户设置密码 sudo passwd ...
- Electron学习笔记(一)
Electron是使用Javascript.HTML5技术构建跨平台桌面应用的技术,是目前非常活跃的一项技术,其中比较有名气的应用有微软的VS Code. 创建一个Electron应用的方式有很多,G ...
- 设计模式之面向切面编程AOP
动态的将代码切入到指定的方法.指定位置上的编程思想就是面向切面的编程. 代码只有两种,一种是逻辑代码.另一种是非逻辑代码.逻辑代码就是实现功能的核心代码,非逻辑代码就是处理琐碎事务的代码,比如说获取连 ...
- RxJava操作符的简单使用
一.准备工作在app的build.gradle文件下的dependencies中添加依赖: compile 'io.reactivex:rxjava:1.3.0' compile 'io.reacti ...
- 当心Azure跨区域数据传输产生额外费用
最近同事发现Azure上一台虚拟机的费用环比增加了一部分.后面仔细检查发现费用来自数据传输, 因为这是早期部署的一台Azure虚拟机(Iaas),我们在本地生成备份,然后通过AzCopy到存储账号的B ...