使用TreeView加载XML文件

PS: 由于小弟初学编程,本文只写实现方式,代码写的不是很好请见谅!

1.需要读取的xml文档内容

2. 最终实现效果

3  貌似看起实现起来很复杂 但是想想还是挺简单

思路:  读取XML文档 →获取XML根元素→ 递归添加根元素(因为树形的结构和XML很像)

具体看代码

首先给加载button注册方法

 1 private void btn_LoadXml_Click(object sender, EventArgs e)
 2         {
 3             //读取Xml文件   this.txt_XmlPath.Text是文件路径
 4             XDocument xmlfile = XDocument.Load(Path.GetFullPath(this.txt_XmlPath.Text.Trim()));
 5
 6             //取根元素
 7             XElement rootElement = xmlfile.Root;
 8
 9             //给第TreeView 添加根节点
10             TreeNode node=  this.treeView1.Nodes.Add(rootElement.Name.ToString());
11
12             RecursionAddNode(node.Nodes, rootElement);
13         }
 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 但是看了下文档 发现很多对象都能读取 所以想问我用这个对象读取过时了吗?

时间: 01-17

使用TreeView加载XML文件的相关文章

Android动态加载XML文件及控件来简单实现QQ好友印象的功能

在android开发中,我们常常会遇到界面布局控件不确定的情况.由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态加载控件来简单实现QQ中好友印象的功能,其中也会提到如何来动态加载一个XML的配置文件. 那么要实现好友印象的功能,我们需要通过以下这几个步骤: 1.界面一开始需要加载一个EditText和Button控件,用于填写好友印象和添加好友印象: 2.需要新建一个arrays.xml,在xml文件中添加上

js加载xml文件xin

js加载xml文件 作为刚进入软件开发大军的我,以一个水军的资格开始做梦,以一个画者的资格在'一张白纸'上开始涂抹.工作在哪里??工作在哪里呢??? 今天发现一道面试题: 附件中有一个城市列表的city.xml文件,现在需要您通过Javascript脚本对该文件进行解析,然后将城市列表还原到下拉列表框中:当选择下拉列表框时,在对应的文本框中显示该城市信息(界面布局请参考test1.html文件,也可以自行定义). 上网查了一天的资料,绞尽脑汁的试着网上前辈的各种方法,为什么一个个别人成功的案例,

02操作XML—Unity加载Xml文件方式

学习笔记,如有错误请指正.?号处也请各位指点下,谢谢. 1Unity加载本地Xml文件 xmlDocument.Load("文件绝对路径"); 2Unity加载异地Xml文件 在本地计算机上安装一个Xampp,该软件集成了Apache服务器,将一个Xml文件放到服务器下(Apache的文件放在Htdocs文件夹下) Xml内容如下: void isUserExist(string name, string pwd) { XmlElement root = readXmlFile.Get

js加载XML文件

// XML文件 <?xml version="1.0" encoding="gb2312"?> <root> <father name="菜单一"> <Child url="right.html" enable="false">子项1</Child> <Child url="right.html" enable=&quo

Ajax动态加载xml文件内容

<%@page import="javax.swing.JOptionPane"%> <%@page import="com.ctl.util.*"%> <%@page import="com.ctl.util.test.*"%> <%@page import="java.sql.*"%> <%@ page language="java" import=

XmlDocument.Load()加载xml文件时,提示分析 EntityName 时出错的问题。

今天一个接口突然报错,错误是: 分析 EntityName 时出错. 行 35,位置 90. xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath("AD/xml/CheckForUpdate.xml")); 后来发现,代码并没有问题,问题出在xml内容里.因为xml新增的内容里包含了&符号,在涉及到xml编程的过程中,忽略了xml中特殊符号表示的方法. 下表列出了这些特殊字符并描述了它们的含义.有关更多信息,请参见

js便签笔记(8)——js加载XML字符串或文件

1. 加载XML文件 方法1:ajax方式.代码如下: var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("GET", "data.xml", false); xhr.send(null); var xmlDoc = xhr.responseXML; console.log(xmlDoc

Spring 加载xml配置文件的方式 ApplicationContext

大家都知道Java读普通文件是通过Basic I/O 中的InputStream.OutStream.Reader.Writer 等实现的.在spring 框架中,它是怎样识别xml这个配置文件的呢? 这就要靠IoC容器的两个接口BeanFactory 和ApplicationContext: BeanFactory (接口) |--------XmlBeanFactory(实现类) ApplicationContext (接口) |-------- ClassPathXmlApplicatio

mybatis学习之路(三)别名(typeAliases)mapper接口加载映射文件

一.mybatis默认支持别名 别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean string String byte Byte long Long short Short int Integer integer Integer double Double float Float boolean Boolean date Da