您的位置:首页 > 编程语言 > C#

C#解析xml文件获取中国的省市县地区名称和zipcode编号

2017-10-05 20:18 387 查看
全栈工程师开发手册 (作者:栾鹏)

c#教程全解

C#解析xml文件获取中国的省市县名称获zipcode编号。需要提交加载xml文件。获取市级城市时,需要提供省级名称。获取县级城市市需要提供省级和市级城市名称。

需要province.xml文件,下载

测试代码

static void Main()
{
XmlDocument doc=new XmlDocument();
doc.Load("province.xml");
List<string> allprovince = getProvince(doc);
for (int i = 0; i < allprovince.Count; i++)
{
System.Console.WriteLine(allprovince[i]);
}
List<string> allcity = getCity(doc, "安徽省");
for (int i = 0; i < allcity.Count; i++)
{
System.Console.WriteLine(allcity[i]);
}
List<string> allcounty = getCounty(doc, "安徽省", "安庆市");
for (int i = 0; i < allcounty.Count; i++)
{
System.Console.WriteLine(allcounty[i]);
}
}


获取省级城市名称

public static List<String> getProvince(XmlDocument doc)
{
List<String> provincelist = new List<string>();
XmlNode provinces = doc.SelectSingleNode("/root");
foreach (XmlNode province1 in provinces.ChildNodes)
{
provincelist.Add(province1.Attributes["name"].Value);
}
return provincelist;
}


获取市级城市名称

public static List<String> getCity(XmlDocument doc, String provincestr)
{
List<String> citylist = new List<string>();
string xpath = string.Format("/root/province[@name='{0}']/city", provincestr);
XmlNodeList cities = doc.SelectNodes(xpath);
foreach (XmlNode city1 in cities)
{
citylist.Add(city1.Attributes["name"].Value);
}
return citylist;
}


获取县级城市名称

public static List<String> getCounty(XmlDocument doc, String provincestr, String citystr)
{
List<String> qulist = new List<string>();
string xpath = string.Format("/root/province[@name='{0}']/city[@name='{1}']/district", provincestr, citystr);
XmlNodeList area = doc.SelectNodes(xpath);
foreach (XmlNode area1 in area)
{
qulist.Add(area1.Attributes["name"].Value);
}
return qulist;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: