android城市三级联动解析xml,通过XML文件实现省份、城市、区域三级联动

1:前台js文件:

$(document).ready(function () {

GetDataList("#Provinces", 0, "Provinces");

$("#Provinces").change(function () {

GetDataList("#Cities", $("#Provinces").val(), "Cities");

});

$("#Cities").change(function () {

GetDataList("#Districts", $("#Cities").val(), "Districts");

});

$("#btnGet").click(function () {

alert($("#Provinces").val() + "--" + $("#Provinces option:selected").text());

});

});

function GetDataList(ddlId, id, action, selId) {

$.getJSON("tools/SelectAjax.ashx", { action: action, id: id, rnd: Math.random() }, function (data) {

$(ddlId).empty();

$("不限").appendTo($(ddlId));

$.each(data, function (i, item) {

$("")

.val(item.CityId)

.attr("selected", item.CityId == selId)

.text(item.CityName)

.appendTo($(ddlId));

});

});

}

2:前台html代码:

不限

不限

不限

3:后台代码:

public class SelectAjax : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

var action = context.Request.QueryString["action"];

var id = context.Request.QueryString["id"];

if (string.IsNullOrEmpty(id)) context.Response.Write("");

switch (action)

{

case "Provinces":

context.Response.Write(GetProvinces());

break;

case "Cities":

context.Response.Write(GetCities(id));

break;

case "Districts":

context.Response.Write(GetDistricts(id));

break;

default:

context.Response.Write("");

break;

}

}

///

/// 获取省份集合

///

///

private string GetProvinces()

{

var xdoc = new XmlDocument();

xdoc.Load(HttpContext.Current.Server.MapPath("Provinces.xml")); //加载Xml文件

var provElem = xdoc.DocumentElement; //获取根节点

if (provElem == null) return null;

var provincesNodes = provElem.GetElementsByTagName("Province"); //获取Provinces子节点集合

var listArea= (from object node in provincesNodes

let provId = ((XmlElement) node).GetAttribute("ID")

let provName = ((XmlElement) node).GetAttribute("ProvinceName")

select new Area()

{

CityId = provId,

CityName = provName

}).ToList();

return Serialize(listArea);

}

///

/// 通过省份ID获取对应的城市

///

/// 省份ID

///

private string GetCities(string provinceId)

{

var xdoc = new XmlDocument();

xdoc.Load(HttpContext.Current.Server.MapPath("Cities.xml")); //加载Xml文件

var citieElem = xdoc.DocumentElement; //获取根节点

if (citieElem == null) return null;

var citieNodes = citieElem.GetElementsByTagName("City"); //获取Cities子节点集合

var listArea = (from object node in citieNodes

let citId = ((XmlElement)node).GetAttribute("ID")

let citName = ((XmlElement)node).GetAttribute("CityName")

let pid = ((XmlElement)node).GetAttribute("PID")

where pid == provinceId

select new Area()

{

CityId = citId,

CityName = citName

}).ToList();

return Serialize(listArea);

}

///

/// 通过城市ID获取区域

///

/// 城市ID

///

private string GetDistricts(string citieId)

{

var xdoc = new XmlDocument();

xdoc.Load(HttpContext.Current.Server.MapPath("Districts.xml")); //加载Xml文件

var districtElem = xdoc.DocumentElement; //获取根节点

if (districtElem == null) return null;

var citieNodes = districtElem.GetElementsByTagName("District"); //获取Districts子节点集合

var listArea = (from object node in citieNodes

let distrId = ((XmlElement)node).GetAttribute("ID")

let distrName = ((XmlElement)node).GetAttribute("DistrictName")

let cid = ((XmlElement)node).GetAttribute("CID")

where cid == citieId

select new Area()

{

CityId = distrId,

CityName = distrName

}).ToList();

return Serialize(listArea);

}

///

/// Json序列化

///

/// 泛型

/// 泛型

/// 序列化

private string Serialize(object obj)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Serialize(obj);

}

///

/// Json反序列化

///

/// 泛型

/// 泛型

/// 反序列化

private T Deserialize(string strJson)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Deserialize(strJson);

}

public class Area

{

//城市ID

public string CityId { get; set; }

//城市名称

public string CityName { get; set; }

}

public bool IsReusable

{

get

{

return false;

}

}

}

备注:XML文件请童鞋移步到 xml源文件 进行下载,谢谢!

效果截图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
省市联动XML <?xml version="1.0" encoding="utf-8"?> <china> <province name="北京"> <city>东城区</city> <city>西城区</city> <city>崇文区</city> <city>宣武区</city> <city>朝阳区</city> <city>丰台区</city> <city>石景山区</city> <city>海淀区</city> <city>门头沟区</city> <city>房山区</city> <city>通州区</city> <city>顺义区</city> <city>昌平区</city> <city>大兴区</city> <city>怀柔区</city> <city>平谷区</city> <city>密云县</city> <city>延庆县</city> </province> <province name="天津"> <city>和平区</city> <city>河东区</city> <city>河西区</city> <city>南开区</city> <city>河北区</city> <city>红桥区</city> <city>塘沽区</city> <city>汉沽区</city> <city>大港区</city> <city>东丽区</city> <city>西青区</city> <city>津南区</city> <city>北辰区</city> <city>武清区</city> <city>宝坻区</city> <city>宁河县</city> <city>静海县</city> <city>蓟县</city> </province> <province name="河北"> <city>石家庄</city> <city>唐山</city> <city>秦皇岛</city> <city>邯郸</city> <city>邢台</city> <city>保定</city> <city>张家口</city> <city>承德</city> <city>沧州</city> <city>廊坊</city> <city>衡水</city> </province> <province name="山西"> <city>太原</city> <city>大同</city> <city>阳泉</city> <city>长治</city> <city>晋城</city> <city>朔州</city> <city>晋中</city> <city>运城</city> <city>忻州</city> <city>临汾</city> <city>吕梁</city> </province> <province name="内蒙古"> <city>呼和浩特</city> <city>包头</city> <city>乌海</city> <city>赤峰</city> <city>通辽</city> <city>鄂尔多斯</city> <city>呼伦贝尔</city> <city>巴彦淖尔</city> <city>乌兰察布</city> <city>兴安盟</city> <city>锡林郭勒盟</city> <city>阿拉善盟</city> </province> <province name="辽宁"> <city>沈阳</city> <city>大连</city> <city>鞍山</city> <city>抚顺</city> <city>本溪</city> <city>丹东</city> <city>锦州</city> <city>营口</city> <city>阜新</city> <city>辽阳</city> <city>盘锦</city> <city>铁岭</city> <city>朝阳</city> <city>葫芦岛</city> </province> <province name="吉林"> <city>长春</city> <city>吉林</city> <city>四平</city> <city>辽源</city> <city>通化</city> <city>白山</city> <city>松原</city> <city>白城</city> <city>延边</city> </province> <province name="黑龙江"> <city>哈尔滨</city> <city>齐齐哈尔</city> <city>鸡西</city> <city>鹤岗</city> <city>双鸭山</city> <city>大庆</city> <city>伊春</city> <city>佳木斯</city> <city>七台河</city> <city>牡丹江</city> <city>黑河</city> <city>绥化</city> <city>大兴安岭</city> </province> <province name="上海"> <city>黄浦区</city> <city>卢湾区</city> <city>徐汇区</city> <city>长宁区</city> <city>静安区</city> <city>普陀区</city> <city>闸北区</city> <city>虹口区</city> <city>杨浦区</city> <city>闵行区</city> <city>宝山区</city> <city>嘉定区</city> <city>浦东新区</city> <city>金山区</city> <city>松江区</city> <city>青浦区</city> <city>南汇区</city> <city>奉贤区</city> <city>崇明县</city> </province> <province name="江苏"> <city>南京</city> <city>无锡</city> <city>徐州</city> <city>常州</city> <city>苏州</city> <city>南通</city> <city>连云港</city> <city>淮安</city> <city>盐城</city> <city>扬州</city> <city>镇江</city> <city>泰州</city> <city>宿迁</city> </province> <province name="浙江"> <city>杭州</city> <city>宁波</city> <city>温州</city> <city>嘉兴</city> <city>湖州</city> <city>绍兴</city> <city>金华</city> <city>衢州</city> <city>舟山</city> <city>台州</city> <city>丽水</city> </province> <province name="安徽"> <city>合肥</city> <city>芜湖</city> <city>蚌埠</city> <city>淮南</city> <city>马鞍山</city> <city>淮北</city> <city>铜陵</city> <city>安庆</city> <city>黄山</city> <city>滁州</city> <city>阜阳</city> <city>宿州</city> <city>巢湖</city> <city>六安</city> <city>亳州</city> <city>池州</city> <city>宣城</city> </province> <province name="福建"> <city>福州</city> <city>厦门</city> <city>莆田</city> <city>三明</city> <city>泉州</city> <city>漳州</city> <city>南平</city> <city>龙岩</city> <city>宁德</city> </province> <province name="江西"> <city>南昌</city> <city>景德镇</city> <city>萍乡</city> <city>九江</city> <city>新余</city> <city>鹰潭</city> <city>赣州</city> <city>吉安</city> <city>宜春</city> <city>抚州</city> <city>上饶</city> </province> <province name="山东"> <city>济南</city> <city>青岛</city> <city>淄博</city> <city>枣庄</city> <city>东营</city> <city>烟台</city> <city>潍坊</city> <city>济宁</city> <city>泰安</city> <city>威海</city> <city>日照</city> <city>莱芜</city> <city>临沂</city> <city>德州</city> <city>聊城</city> <city>滨州</city> <city>荷泽</city> </province> <province name="河南"> <city>郑州</city> <city>开封</city> <city>洛阳</city> <city>平顶山</city> <city>安阳</city> <city>鹤壁</city> <city>新乡</city> <city>焦作</city> <city>濮阳</city> <city>许昌</city> <city>漯河</city> <city>三门峡</city> <city>南阳</city> <city>商丘</city> <city>信阳</city> <city>周口</city> <city>驻马店</city> </province> <province name="湖北"> <city>武汉</city> <city>黄石</city> <city>十堰</city> <city>宜昌</city> <city>襄樊</city> <city>鄂州</city> <city>荆门</city> <city>孝感</city> <city>荆州</city> <city>黄冈</city> <city>咸宁</city> <city>随州</city> <city>恩施</city> <city>神农架</city> </province> <province name="湖南"> <city>长沙</city> <

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值