欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

将Xml文件递归加载到TreeView中

程序员文章站 2022-06-21 07:59:08
#region 【通过XDocument的方式将Xml文件递归到TreeView控件中】 //读取Xml文件(XDocument) //1.加载Xml文件 XDocument document=XDoument.Load("文件名称.xml"); //2.先获取跟节点 XElement rootEl ......

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

 

  }

}