xml绑定省市,并实现二级联动

查看代码
  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         }
posted @ 2011-12-05 15:34  做最好の自己  阅读(1250)  评论(0编辑  收藏  举报