居委會試題(解析xml文件)

xml文件

<?xml version="1.0" encoding="utf-8" ?>
<root name="石牌街道">
  <juwei name="瑞華居委">
    <jianzhu smid="6" name="瑞華花園1棟">
      <fjname>101室</fjname>
      <fjname>102室</fjname>
    </jianzhu>
    <jianzhu smid="7" name="瑞華花園2棟">
      <fjname>101室</fjname>
      <fjname>102室</fjname>
    </jianzhu>
  </juwei>
  <juwei name="金帝居委">
    <jianzhu smid="4" name="金帝花園1棟">
      <fjname>101室</fjname>
      <fjname>102室</fjname>
    </jianzhu>
  </juwei>
  <juwei name="朝陽居委">
    <jianzhu smid="5" name="朝陽花園1棟">
      <fjname>101室</fjname>
      <fjname>102室</fjname>
    </jianzhu>
  </juwei>
</root>

解析xml

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace 居委會
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
        public void Show()
        {
          
            XmlDocument XmlDoc = new XmlDocument();
            //讀取相對路徑下的xml文件
            XmlDoc.Load("Address.xml");
            //獲取根節點
            XmlNode xmlnode = XmlDoc.DocumentElement;
            //創建一個樹節點
            TreeNode JieDaoNodes = new TreeNode();
            //將xml根節點的name值儲存到樹節點的text
           JieDaoNodes.Text = xmlnode.Attributes["name"].InnerText;
            //將jiedaoNodes樹節點綁定到treeView1的根節點
            treeView1.Nodes.Add(JieDaoNodes);
            //聲明一個樹節點
            TreeNode juweiNodes = null; 
            
           
            foreach (XmlNode juwei in xmlnode.ChildNodes)
            {
                //初始化樹節點
                juweiNodes = new TreeNode();
                
                //將juwei的name值保存到juweiNodes樹節點的text
                juweiNodes.Text = juwei.Attributes["name"].InnerText;
                TreeNode DongNodes = null;
                foreach (XmlNode Dong in juwei.ChildNodes)
                {
                    //初始化樹節點
                    DongNodes = new TreeNode ();
                    //將Dong的name值保存到DongNodes樹節點的text
                    DongNodes.Text = Dong.Attributes["name"].InnerText; ;
                    TreeNode HaoNodes = null;
                    foreach (XmlNode Hao in Dong.ChildNodes)
                    {
                        //初始化樹節點
                        HaoNodes = new TreeNode();
                        //將獲取到Hao中的值保存到HaoNodes樹節點的text
                        HaoNodes.Text = Hao.InnerText;
                        //HaoNodes樹節點綁定到DongNodes的子節點
                        DongNodes.Nodes.Add(HaoNodes);
                    }
                    //將DongNodes樹節點綁定到JuWeiNodes的子節點
                    juweiNodes.Nodes.Add(DongNodes);
                }

                

                //將juweiNodes樹節點綁定到JieDaoNodes的子節點
                JieDaoNodes.Nodes.Add(juweiNodes);
            }
        }

        private void Main_Load(object sender, EventArgs e)
        {
            Show();
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //獲取選中的節點
            TreeNode node=treeView1.SelectedNode;

            if (node==null)
            {
                return;
            }
            //只能選取深度爲3的節點
            if (node.Level!=3)
            {
                return;
            }
            //獲取深度爲0的節點的text
            this.txtStreet.Text = treeView1.Nodes[0].Text;
            //獲取所選節點的父節點的父節點的text
            this.txtJuWei.Text = node.Parent.Parent.Text;
            //獲取所選節點的父節點的text
            this.txtBudingNO.Text = node.Parent.Text;
            //獲取所選節點的text
            this.txtRoomNO.Text = node.Text;
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章