把已知的XML文档读进treeview中,同时在propertygrid中显示各节点的属性分不多,但先谢过各位大大了··^_^

解决方案 »

  1.   

    How do I populate a Treeview control from an XML file in C#?The following C# code loads an XML file into a tree view control. All you need to do is set the path to the XML file and specify the XPATH to the top node.using System.Xml; private void button1_Click(object sender, System.EventArgs e)
    {
        try
        {
            this.Cursor = System.Windows.Forms.Cursors.WaitCursor;        string strXPath = "XML/I140";
            string strRootNode = "Treeview Sample";
            string strXMLFile = @"C:\...\test.xml";        // Load the XML file.
            XmlDocument dom   = new XmlDocument();
            dom.Load(strXMLFile);        // Load the XML into the TreeView.
            this.treeView1.Nodes.Clear();
            this.treeView1.Nodes.Add(new TreeNode(strRootNode));
            TreeNode tNode = new TreeNode();
            tNode          = this.treeView1.Nodes[0];        XmlNodeList oNodes = dom.SelectNodes(strXPath);
            XmlNode xNode      = oNodes.Item(0).ParentNode;        AddNode(ref xNode, ref tNode);        this.treeView1.CollapseAll();
            this.treeView1.Nodes[0].Expand();
            this.Cursor = System.Windows.Forms.Cursors.Default;
        }    catch (Exception ex)
        {
            this.Cursor = System.Windows.Forms.Cursors.Default;
            MessageBox.Show(ex.Message, "Error");
        }    
    }private void AddNode(ref XmlNode inXmlNode, ref TreeNode inTreeNode)
    {
        // Recursive routine to walk the XML DOM and add its nodes to a TreeView.
        XmlNode     xNode;
        TreeNode    tNode;
        XmlNodeList nodeList;
        int i;    // Loop through the XML nodes until the leaf is reached.
        // Add the nodes to the TreeView during the looping process.
        if (inXmlNode.HasChildNodes)
        {
            nodeList = inXmlNode.ChildNodes;
            for (i = 0; i <= nodeList.Count - 1; i++)
            {
                xNode = inXmlNode.ChildNodes[i];
                inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
                tNode = inTreeNode.Nodes[i];
                AddNode(ref xNode, ref tNode);
            }
        }
        else
        {
            inTreeNode.Text = inXmlNode.OuterXml.Trim();
        }
    }private void btnExpand_Click(object sender, System.EventArgs e)
    {
        if (this.btnExpand.Text == "Expand All Nodes")
        {
            this.treeView1.ExpandAll();
            this.btnExpand.Text = "Collapse All Nodes";
        }
        else
        {
            this.treeView1.CollapseAll();
            this.treeView1.Nodes[0].Expand();
            this.btnExpand.Text = "Expand All Nodes";
        }

      

  2.   

    把已知的XML文档读进treeview中,参考:http://www.c-sharpcorner.com/Code/2003/Sept/XMLTreeView.asp在propertygrid中显示各节点的属性,参考:
    http://www.codeproject.com/cs/miscctrl/XmlGridControl.asp