xml绑定省市,并实现二级联动
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 private System.Xml.XmlDocument xmldoc;
2 protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
3 {
4 string provincename = this.ddlprovince.SelectedItem.Text;
5 //ListItemCollection lis = this.ddlprovince.Items;
6 this.ddlcity.DataSource = GetCityByname(provincename);
7 this.ddlcity.DataBind();
8 }
9
10
11 public void loadxml()
12 {
13 string xmlpath = Server.MapPath("ChinaArea.xml");
14 xmldoc = new System.Xml.XmlDocument();
15
16 xmldoc.Load(xmlpath);
17
18 }
19
20 public List<string> GetProvince()
21 {
22
23 List<string> listcountry = new List<string>();
24
25 loadxml();
26
27 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
28
29 //获取obj节点的所有子节点
30 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
31 {
32
33 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
34
35 string countryname = xe.GetAttribute("province");//取出子节点下name属性的值
36
37 listcountry.Add(countryname);
38
39 }
40
41 return listcountry;
42
43 }
44
45 //跟据节点名取出其属性value的值
46
47 public List<string> GetCityByname(string name) //参数name为省的名称 根据省名称得到市列表
48 {
49
50 List<string> listcity = new List<string>();
51 loadxml();
52 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
53 //获取obj节点的所有子节点
54 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
55 {
56
57 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
58
59 if (xe.GetAttribute("province") == name) //
60 {
61
62 System.Xml.XmlNodeList listnode = xe.ChildNodes;
63
64 foreach (System.Xml.XmlNode xc in listnode)
65 {
66
67 System.Xml.XmlElement xce = (System.Xml.XmlElement)xc;
68
69 string cityname = xce.GetAttribute("City");
70 listcity.Add(cityname);
71
72 }
73 }
74
75 }
76 return listcity;
77
78 }
79 /// <summary>
80 /// 获得对应城市的区号
81 /// </summary>
82 /// <param name="city"></param>
83 /// <returns></returns>
84 protected string GetCityAreacode(string city)
85 {
86 string code = "";
87 loadxml();
88 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
89 //获取obj节点的所有子节点
90 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
91 {
92
93 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
94
95 if (xe.GetAttribute("province") == ddlprovince.SelectedItem.Text) //
96 {
97
98 System.Xml.XmlNodeList listnode = xe.ChildNodes;
99
100 foreach (System.Xml.XmlNode xc in listnode)
101 {
102
103 System.Xml.XmlElement xce = (System.Xml.XmlElement)xc;
104
105 string cityname = xce.GetAttribute("City");
106 if (cityname == city)
107 {
108 code = xce.GetAttribute("areacode");
109 txtZipCode.Text = xce.GetAttribute("code");//获得邮政编码
110 }
111
112 }
113 }
114
115 }
116 return code;
117 }
2 protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
3 {
4 string provincename = this.ddlprovince.SelectedItem.Text;
5 //ListItemCollection lis = this.ddlprovince.Items;
6 this.ddlcity.DataSource = GetCityByname(provincename);
7 this.ddlcity.DataBind();
8 }
9
10
11 public void loadxml()
12 {
13 string xmlpath = Server.MapPath("ChinaArea.xml");
14 xmldoc = new System.Xml.XmlDocument();
15
16 xmldoc.Load(xmlpath);
17
18 }
19
20 public List<string> GetProvince()
21 {
22
23 List<string> listcountry = new List<string>();
24
25 loadxml();
26
27 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
28
29 //获取obj节点的所有子节点
30 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
31 {
32
33 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
34
35 string countryname = xe.GetAttribute("province");//取出子节点下name属性的值
36
37 listcountry.Add(countryname);
38
39 }
40
41 return listcountry;
42
43 }
44
45 //跟据节点名取出其属性value的值
46
47 public List<string> GetCityByname(string name) //参数name为省的名称 根据省名称得到市列表
48 {
49
50 List<string> listcity = new List<string>();
51 loadxml();
52 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
53 //获取obj节点的所有子节点
54 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
55 {
56
57 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
58
59 if (xe.GetAttribute("province") == name) //
60 {
61
62 System.Xml.XmlNodeList listnode = xe.ChildNodes;
63
64 foreach (System.Xml.XmlNode xc in listnode)
65 {
66
67 System.Xml.XmlElement xce = (System.Xml.XmlElement)xc;
68
69 string cityname = xce.GetAttribute("City");
70 listcity.Add(cityname);
71
72 }
73 }
74
75 }
76 return listcity;
77
78 }
79 /// <summary>
80 /// 获得对应城市的区号
81 /// </summary>
82 /// <param name="city"></param>
83 /// <returns></returns>
84 protected string GetCityAreacode(string city)
85 {
86 string code = "";
87 loadxml();
88 System.Xml.XmlNodeList nodeList = xmldoc.SelectSingleNode("area").ChildNodes;
89 //获取obj节点的所有子节点
90 foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
91 {
92
93 System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;//将子节点类型转换为XmlElement类型
94
95 if (xe.GetAttribute("province") == ddlprovince.SelectedItem.Text) //
96 {
97
98 System.Xml.XmlNodeList listnode = xe.ChildNodes;
99
100 foreach (System.Xml.XmlNode xc in listnode)
101 {
102
103 System.Xml.XmlElement xce = (System.Xml.XmlElement)xc;
104
105 string cityname = xce.GetAttribute("City");
106 if (cityname == city)
107 {
108 code = xce.GetAttribute("areacode");
109 txtZipCode.Text = xce.GetAttribute("code");//获得邮政编码
110 }
111
112 }
113 }
114
115 }
116 return code;
117 }