怎样用递归遍历xml文件到TreeView

解决方案 »

  1.   


    1.xml
    ----------------------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <Test>
       <TestNode1>
           <ChildNode1/>
           <ChildNode2/>
           <ChildNode3/>
           <ChildNode4/>
       </TestNode1>
       <TestNode2>
           <ChildNode5/>
           <ChildNode6/>
       </TestNode2>
       <TestNode3>
           <ChildNode7/>
       </TestNode3>
    </Test>XmlDocument xml = new XmlDocument();
    xml.Load(@"C:\1.xml");
    XmlNode root = xml.SelectSingleNode("Test");
    TreeNode treeroot = new TreeNode(root.Name);
    this.treeView1.Nodes.Add(treeroot);  //添加根节点
    BindTreeView(root,treeroot);//---------------------------------------------------------private void BindTreeView(XmlNode node, TreeNode tn)
    {
       foreach (XmlNode n in node.ChildNodes)
       {
         TreeNode childnode = new TreeNode(n.Name);
         tn.Nodes.Add(childnode);
         if (n.ChildNodes.Count > 0)
         {
           BindTreeView(n, childnode);
         }
       }
    }
      

  2.   

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("");
    XmlNodeList xmlNodes = xmlDoc.DocumentElement.ChildNodes;
    this.treeView1.BeginUpdate();
    this.treeView1.Nodes.Clear();
    XmlNode2TreeNode(xmlNodes, this.treeView1.Nodes);
    this.treeView1.EndUpdate();        private void XmlNode2TreeNode(XmlNodeList xmlNode, TreeNodeCollection treeNode)
            {
                foreach (XmlNode var in xmlNode)
                {
                    if (var.NodeType != XmlNodeType.Element)
                    {
                        continue;
                    }
                    TreeNode newTreeNode = new TreeNode();
                    newTreeNode.Text = var.Attributes["Title"].Value;
                    if (var.HasChildNodes)
                    {
                        if (var.ChildNodes[0].NodeType == XmlNodeType.CDATA)
                        {
                            newTreeNode.Tag = var.ChildNodes[0].Value;
                        }
                        XmlNode2TreeNode(var.ChildNodes, newTreeNode.Nodes);
                    }
                    treeNode.Add(newTreeNode);
                }
            }
    http://www.codeproject.com/KB/tree/treeviewxml.aspx
      

  3.   

    你要编立什么样的XML啊
    xml不一样,在遍历判断的就不一样啊!~~