##1 定义三级model
[XmlRoot("country")]
public class Country
{
[XmlElement("provinces")]
public List<Province> provinces { get; set; }
[XmlAttribute]
public string name { get; set; }
}
public class Province
{
[XmlElement("city")]
public List<City> citys { get; set; }
[XmlAttribute]
public string name { get; set; }
[XmlAttribute]
public string code { get; set; }
}
public class City
{
[XmlElement("county")]
public List<County> Counties { get; set; }
[XmlAttribute]
public string name { get; set; }
[XmlAttribute]
public string code { get; set; }
}
public class County
{
[XmlAttribute]
public string name { get; set; }
[XmlAttribute]
public string code { get; set; }
/// <summary>
/// 经度
/// </summary>
[XmlAttribute]
public double longitude { get; set; }
/// <summary>
/// 维度
/// </summary>
[XmlAttribute]
public double latitude { get; set; }
}
##2 在线获取行政区域划分 地址:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201504/t20150415_712722.html 获取以上html代码并解析出行政区域
string url = "http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201504/t20150415_712722.html";
string html = CoordinateHelper.HttpHelper(url);`
string str = Regex.Match(html, "<div class=\"xilan_con\".*?</div>").ToString();
MatchCollection matches = Regex.Matches(str, "<p.*?>(\\d+).*?</p>");
List<Province> list = new List<Province>();
foreach (Match match in matches)
{
//<p class="MsoNormal" align="justify">110000 北京市</p>
var group = match.Groups[1];
string code = group.Value;
string name = Regex.Replace(match.ToString(), "<.*?>", "");
name = Regex.Replace(name, " ", "");
name = Regex.Replace(name, code, "");
name = name.Trim();
if (code.EndsWith("00"))
{
var temp = list.FirstOrDefault(p => p.code.StartsWith(code.Substring(0, 2)));
if (temp == null)
{
Province province = new Province();
province.code = code;