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;
}
}
}