将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);
    }

 

  }

}

 

 

posted @ 2018-12-05 20:29  Valoris  阅读(575)  评论(0编辑  收藏  举报