使用TreeView加载XML文件
PS: 由于小弟初学编程,本文只写实现方式,代码写的不是很好请见谅!
1.需要读取的xml文档内容

2. 最终实现效果

3 貌似看起实现起来很复杂 但是想想还是挺简单
思路: 读取XML文档 →获取XML根元素→ 递归添加根元素的子元素(因为树形的结构和XML很像)
具体看代码
首先给加载button注册方法
private void btn_LoadXml_Click(object sender, EventArgs e)
{
//读取Xml文件 this.txt_XmlPath.Text是文件路径
XDocument xmlfile = XDocument.Load(Path.GetFullPath(this.txt_XmlPath.Text.Trim())); //取根元素
XElement rootElement = xmlfile.Root; //给第TreeView 添加根节点
TreeNode node= this.treeView1.Nodes.Add(rootElement.Name.ToString()); RecursionAddNode(node.Nodes, rootElement);
}
RecursionAddNode方法代码 此方法主要实现递归添加到TreeView
private void RecursionAddNode(TreeNodeCollection nodes, XElement xElement)
{
//获取嵌套的元素
IEnumerable<XElement> elements = xElement.Elements();
//递归添加
foreach (XElement element in elements)
{
TreeNode node = nodes.Add(element.Name.ToString()+":"+GetAttributes(element));
RecursionAddNode(node.Nodes, element);
}
}
//如果要获取属性 就要再添加一个方法GetAttributes(element)
private static string GetAttributes(XElement xElement)
{
IEnumerable<XAttribute> attributes = xElement.Attributes(); foreach (XAttribute attribute in attributes)
{
return attribute.Name + "=" + attribute.Value;
}
return null;
}
备注:小弟才学读取XML 但是看了下文档 发现很多对象都能读取 所以想问我用这个对象读取过时了吗?
使用TreeView加载XML文件的更多相关文章
- 通过 XML HTTP 加载 XML 文件
新建一个.aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="02-通 ...
- dom4j加载xml文件
## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...
- 通过JS加载XML文件,跨浏览器兼容
引言 通过JS加载XML文件,跨多种浏览器兼容. 在Chrome中,没有load方法,需要特殊处理! 解决方案 部分代码 try //Internet Explorer { xmlDoc=new Ac ...
- 解决dom4j加载xml文件性能慢的问题
在代码中使用: 1: DocumentHelper.parseText 2: SAXReader reader = new SAXReader(); Document extdocument = re ...
- java中加载xml文件方法
this.getclass().getclassloader().getresourceasstream(String file); 可以加载文件,比如xml.
- tomcat与springmvc 结合 之---第19篇 springmvc 加载.xml文件的bean 过程
writedby 张艳涛,看springmvc 的源码太难了,怎么办, 这篇文章主要分析了看透springmvc的第9章结尾的 如何解析xml 命名空间标签 <?xml version=&quo ...
- js加载XML文件
// XML文件 <?xml version="1.0" encoding="gb2312"?> <root> <father n ...
- 又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程
writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一, 喜欢上一本书的风格,使用案例来讲述原理, 在做第一个案例的时 ...
- tomcat与springmvc 结合 之---第19篇(下,补充) springmvc 加载.xml文件的bean标签的过程
writedby 张艳涛,上一篇写了springmvc对<mvc:annoXXXX/>标签的解析过程,其实是遗漏重要的细节,因为理解的不深入吧 今天接着解析<bean>标签 & ...
随机推荐
- Linux的账号口令机制及其爆破
账号保存 谈到linux的账号认证,其实就是如何保存于通过口令(password)鉴别,这里首先要将两个文件,一个是/etc/passwd,另外一个是/etc/shadow. /etc/passwd文 ...
- csdn博客刷点击率(java代码)
此文为转载,亲测有效. import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; impo ...
- 利用bat批处理做启动mongodb脚本
文章开始,我们先回顾一下,如何用cmd命令窗口开启mongodb数据库,命令如下: 开启mongodb数据库 cd D:\Program Files\MongoDB\bin mongod --depa ...
- 在sublime中安装使用TortoiseSVN-sublime使用心得(4)
通过sublime text 2.0 安装 TortoiseSVN 插件. 和其它插件不同的是,安装成功后,重启sublime text 2.0 ,在Preferences->Package S ...
- vue--子组件主动获取父组件的数据和方法
子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...
- thinkCMF----如何写标签
ThinkCMF写标签的地方:
- mini2440:通过JLink烧写BootLoader到Nor Flash
开发板:友善之臂mini2440,64M Nand Flash操作系统:Win7电脑:笔记本Lenovo Y450连接器:由于我的笔记本没有并口,所有买了个J-Link和转接板软件:JLink驱动Se ...
- OpenCV学习笔记之课后习题练习3-5
OpenCV学习笔记之课后习题练习2-5 练习使用感兴趣区域(ROI).创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组. 参考博文:www ...
- ubuntu16.04下安装sublime_text
1 在终端输入: sudo add-apt-repository ppa:webupd8team/sublime-text-3 添加sublime text3的软件源: 2 sudo apt-get ...
- SQL Fundamentals || DCL(Data Control Language) || 用户管理&Profile概要文件
SQL Fundamentals || Oracle SQL语言 语句 解释 Create user Creates a user(usually performed by a DBA) Grant ...