如题,在线等,测试通过,即可给分

解决方案 »

  1.   

    你可以看看LINQ_XML,先Load文档后,在调用Elements方法
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;namespace treeView4
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                getxml();                      //在页面上的空间上显示treeView
                ScanNodes(treeView1.Nodes);     //遍历所有的treeNode,并对每一个遍历到的treeNode的tag赋值        }
            private void ScanNodes(TreeNodeCollection ANodes)
            {
                if (ANodes == null) return;
                foreach (TreeNode vNode in ANodes)
                {
                    vNode.Tag = new tagTree(vNode,vNode.GetNodeCount(false));     //每个treeNode的tag都保存一个tagTree对象
                    ScanNodes(vNode.Nodes);
                }
            }        public void getxml()
            {
                TreeNode t1 = new TreeNode();
                t1.Text = "中国";
                treeView1.Nodes.Add(t1);
                XmlDocument doc = new XmlDocument();
                doc.Load("data.xml");
                XmlNodeList nodeList;
                XmlNode root = doc.DocumentElement;
                nodeList = root.SelectNodes("descendant::node");
                foreach (XmlNode node in nodeList)
                {
                    string s = node.Attributes.GetNamedItem("pid").Value;
                    if (s == "0")
                    {
                        creattree(node.InnerText, t1, "s", nodeList);
                    }
                }
            }        public void creattree(string text, TreeNode tnd, string pid, XmlNodeList nodeList)
            {
                TreeNode t2 = new TreeNode();
                t2.Text = text;
                string aValue = "";
                foreach (XmlNode node in nodeList)
                {
                    if (node.InnerText == text)
                    {
                        XmlNode a_id = node.Attributes.GetNamedItem("id");
                        aValue = a_id.Value;
                        break;
                    }
                }            foreach (XmlNode node in nodeList)
                {
                    if (node.Attributes.GetNamedItem("pid").Value == aValue)
                    {
                        string s = node.Attributes.GetNamedItem("pid").Value;
                        creattree(node.InnerText, t2, "s", nodeList);
                    }
                }
                tnd.Nodes.Add(t2);
            }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                dataGridView1.Columns.Clear(); ;
                dataGridView1.Columns.Add("类型", "类型");
                dataGridView1.Columns.Add("值", "值");
                TreeNode q1 = treeView1.SelectedNode;
                tagTree a = (tagTree)q1.Tag;
                if (a.getParent() != "")
                {
                    string[] strParent = { "父节点", a.getParent() };
                    dataGridView1.Rows.Add(strParent);
                }
                int i = 0;
                while (a.child[i] != "")
                {
                    string[] strChild= { "子节点", a.child[i] };
                    dataGridView1.Rows.Add(strChild);
                    i++;
                }
                
                dataGridView1.AllowUserToAddRows = false;           //删除最后一行,不容许用户添加数据
            }        private void Form1_Load(object sender, EventArgs e)
            {        }
           
            }
        }using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;namespace treeView4
    {
        class tagTree 
        {
            public string[] child ;
            private string parent = "";
            public tagTree()
            {        }
            public tagTree(TreeNode selectNode, int coutChild )
              {
                  int j = 0;
                  int i = 0;
                  TreeNode[] s1Node;
                  s1Node = new TreeNode[6];
                  TreeNode pnode;
                  s1Node[0] = selectNode.FirstNode;
                  child = new string[6];
                  for (i = 0; i < 6; i++)
                  {
                   child[i] = "" ;
                  }
                  for (i = 0; i < coutChild; i++)
                  {
                      j++;
                      s1Node[j] = s1Node[j - 1].NextNode;
                      child[i] = s1Node[i].Text;
                  }
                  if (s1Node[i + 1] != null)
                  {
                      child[i + 1] = s1Node[i + 1].Text;
                  }              if (selectNode.Parent is TreeNode)
                  {
                      pnode = (TreeNode)selectNode.Parent;
                      parent = pnode.Text;
                  }
              }
            public string getParent()
            {
                return parent;
            }
          }
        }
    <?xml   version= "1.0"   encoding= "gb2312"   ?> 
    <nodes>
      <node id="2" pid="1">武汉</node>
      <node id="1" pid="0">湖北省</node>
      <node id="4" pid="2">汉口</node>
      <node id="5" pid="2">武昌</node>
      <node id="3" pid="1">黄石</node>
      <node id="7" pid="3">黄石2.1</node>
      <node id="6" pid="3">黄石2.2</node>
      <node id="8" pid="7">黄石3.1</node>
      <node id="9" pid="7">黄石3.2</node>
      <node id="10" pid="1">孝感</node>
      <node id="11" pid="10">云梦</node>
      <node id="12" pid="10">孝南</node>
      <node id="12" pid="10">安陆</node>
      <node id="12" pid="10">应城</node>
    </nodes>我做的是选中一个节点
     显示他父子节点的信息
      

  3.   

    public static string getFilePath()
    {
         string strpath = string.Empty;
         XmlDocument missionDoc = new XmlDocument();
         missionDoc.Load("App.xml");
         XmlNode rootNode = missionDoc.DocumentElement;
         foreach (XmlNode node in rootNode.SelectNodes("/configuration/configfilepath"))
         {
             strpath = node.InnerText;
         }
         return strpath;
    }App.xml<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configfilepath>D:\Temp</configfilepath>
    </configuration>