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文件的更多相关文章

  1. 通过 XML HTTP 加载 XML 文件

    新建一个.aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="02-通 ...

  2. dom4j加载xml文件

    ## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...

  3. 通过JS加载XML文件,跨浏览器兼容

    引言 通过JS加载XML文件,跨多种浏览器兼容. 在Chrome中,没有load方法,需要特殊处理! 解决方案 部分代码 try //Internet Explorer { xmlDoc=new Ac ...

  4. 解决dom4j加载xml文件性能慢的问题

    在代码中使用: 1: DocumentHelper.parseText 2: SAXReader reader = new SAXReader(); Document extdocument = re ...

  5. java中加载xml文件方法

    this.getclass().getclassloader().getresourceasstream(String file); 可以加载文件,比如xml.

  6. tomcat与springmvc 结合 之---第19篇 springmvc 加载.xml文件的bean 过程

    writedby 张艳涛,看springmvc 的源码太难了,怎么办, 这篇文章主要分析了看透springmvc的第9章结尾的 如何解析xml 命名空间标签 <?xml version=&quo ...

  7. js加载XML文件

    // XML文件 <?xml version="1.0" encoding="gb2312"?> <root> <father n ...

  8. 又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程

    writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一, 喜欢上一本书的风格,使用案例来讲述原理, 在做第一个案例的时 ...

  9. tomcat与springmvc 结合 之---第19篇(下,补充) springmvc 加载.xml文件的bean标签的过程

    writedby 张艳涛,上一篇写了springmvc对<mvc:annoXXXX/>标签的解析过程,其实是遗漏重要的细节,因为理解的不深入吧 今天接着解析<bean>标签 & ...

随机推荐

  1. GoldenGate的监控

    1.进入GoldenGate安装目录,运行GGSCI,然后使用info all查看整体的运行状况 GGSCI (aix212) 1> info all Program Status Group ...

  2. 题目1457:非常可乐(广度优先遍历BFS)

    题目链接:http://ac.jobdu.com/problem.php?pid=1457 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  3. JavaScript arguments对象详解

    1. 什么是 arguments MDN 上解释: arguments 是一个类数组对象.代表传给一个function的参数列表. 我们先用一个例子直观了解下 JavaScript 中的 argume ...

  4. jumpserver的安装

    原文地址:http://docs.jumpserver.org/zh/docs/step_by_step.html 为了保证服务器安全,加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有身份 ...

  5. python unittest框架中doCleanups妙用

    偶看unittest官方文档中,发现一个很好用的功能函数doCleanups,看看官方是怎么解释的: doCleanups() This method is called unconditionall ...

  6. python---修改编辑器的配色和字体大小

    因为习惯黑色的背景,所以必须修改成对应的配色: 在这里设置theme: 设置字体大小: 找到Font,这里设置字体大小,首先要Scheme 后 进行 Save as 操作后,才能设置 Size ,设置 ...

  7. Django---Mysql数据库链接

    Django链接Mysql数据库: 第一步:创建应用 python manage.py startapp index 第二步:将应用添加到配置里面 settings INSTALLED_APPS = ...

  8. openstack 部署(Q版)-----glance镜像服务安装配置

    一.创建数据库 CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO '; GRANT ALL PRIVILEGES ON glanc ...

  9. Java-01-问题解答

    问题一:Java类文件是否只能有一个公有类? 1测试代码: //信1603 李敦岳 20163520 //测试Java是否只能有一个公有类 //2017.10.2 public class Test ...

  10. java 内存深度解析

    java 中的包括以下几大种的内存区域:1.寄存器    2.stack(栈) 3.heap(堆) 4.数据段 5.常量池 那么相应的内存区域中又存放什么东西(主要介绍 stack heap)? 栈: ...