C#Xml街道管理软件

    xiaoxiao2021-03-25  70

    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 Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { XmlDataDocument doc = new XmlDataDocument(); doc.Load("Address.xml"); XmlNode nodes = doc.DocumentElement; TreeNode tn = new TreeNode(); //父节点 tn.Text = nodes.Attributes["name"].InnerText; //添加父节点 treeView1.Nodes.Add(tn); TreeNode tns = null; TreeNode chids = null; //循环取tn的子节点 foreach (XmlNode item in nodes.ChildNodes) { tns = new TreeNode(item.Attributes["name"].Value); //把tn的子节点找 出来赋值给TNS.text tn.Nodes.Add(tns); TreeNode chiid = null; foreach (XmlNode node in item.ChildNodes) { //依次循环将tns的子节点找出来赋赋值给chiid添加 chiid = new TreeNode(node.Attributes["name"].Value); tns.Nodes.Add(chiid); foreach (XmlNode items in node.ChildNodes) { chids = new TreeNode(items.InnerXml); chiid.Nodes.Add(chids); } } } //这个方法也好使就是看着没那么清晰! //在循环里感觉没有上面那个好理解 //foreach (XmlNode item in nodes.ChildNodes) //{ // tns = new TreeNode(); // tns.Text = item.Attributes["name"].InnerText; // tns.Tag = item; // TreeNode child = null; // foreach (XmlNode node in item.ChildNodes) // { // child = new TreeNode(); // child.Text = node.Attributes["name"].InnerText; // foreach (XmlNode items in node.ChildNodes) // { // childs = new TreeNode(); // childs.Text = items.InnerText; // child.Nodes.Add(childs); // } // tns.Nodes.Add(child); // } // tn.Nodes.Add(tns); //} } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { //判断treeView1中树节点的深度来赋值依次下去 if (this.treeView1.SelectedNode.Level==0) { //将treeView1中默认选中的节点给到textBox1中 textBox1.Text = treeView1.SelectedNode.Text; }else if (this.treeView1.SelectedNode.Level==1){ //用Parent获取当前的父节点给到textBox1 textBox1.Text = treeView1.SelectedNode.Parent.Text; //将选中的子节点给到textBox2 textBox2.Text = treeView1.SelectedNode.Text; }else if(this.treeView1.SelectedNode.Level==2){ //用treeViewde的SelectedNode的属性.Parent点一次是找本次上一个节点 textBox1.Text =treeView1.SelectedNode.Parent.Parent.Text; textBox2.Text = treeView1.SelectedNode.Parent.Text; //当前选中的赋值给textBox3 textBox3.Text = treeView1.SelectedNode.Text; }else if(this.treeView1.SelectedNode.Level==3){ //用treeViewde的SelectedNode的属性.Parent点一次是找本次上一个节点 textBox1.Text =treeView1.SelectedNode.Parent.Parent.Parent.Text; textBox2.Text = treeView1.SelectedNode.Parent.Parent.Text; textBox3.Text = treeView1.SelectedNode.Parent.Text; //当前选中的赋值给textBox4 textBox4.Text = treeView1.SelectedNode.Text; } } } } <?xml version="1.0" encoding="GB2312"?> -<root name="石牌街道"> -<juwei name="瑞华居委"> -<jianzhu name="瑞华花园1栋" smid="6"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> -<jianzhu name="瑞华花园2栋" smid="7"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> -<juwei name="金帝居委"> -<jianzhu name="金帝花园1栋" smid="4"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> -<juwei name="朝阳居委"> -<jianzhu name="朝阳花园1栋" smid="5"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> </root>
    转载请注明原文地址: https://ju.6miu.com/read-34556.html

    最新回复(0)