zoukankan      html  css  js  c++  java
  • 将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);
        }

      }

    }

  • 相关阅读:
    git常用命令
    vue+el-menu+vue-router实现动态导航条
    css实现文字内容超出显示省略号
    背景图片居中全屏自适应显示
    linux相关操作(虚拟环境、查看进程)(不定时更新)
    关于定义序列化器时,read_only和write_only有什么作用
    flask之请求与响应、闪现(阅后即焚)、请求扩展(before,after)、中间件、LOCAL对象、偏函数、
    flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session
    flask中的endpoint、自定义转化器、与djnago中session区别、利用装饰器实现登录认证
    jinja2模板用法
  • 原文地址:https://www.cnblogs.com/libo-2249/p/10073211.html
Copyright © 2011-2022 走看看