private static List <AdmnistrativeLocality> AddLevelTwo(List <AdmnistrativeLocality> l1) { List <AdmnistrativeLocality> l2 = new List <AdmnistrativeLocality>(); var urll2 = @"http://www.geopoliticalmaps.com/adm/en/dz/algeria/l2/map-of-districts-in-"; foreach (var wilayaItem in l1) { var wilHtmlPath = htmlCode(wilayaItem.ISO); var wilL2Url = urll2 + wilayaItem.URL.Substring(wilayaItem.URL.LastIndexOf('/') + 1); DownloadFile(wilL2Url, wilHtmlPath); var doc = new HtmlDocument(); doc.Load(wilHtmlPath); var table = doc.DocumentNode.SelectSingleNode("//*[contains(@class,'table-condensed')]"); var wilayaLines = table.Elements("tr").Skip(1).ToArray(); foreach (var dayraItem in wilayaLines) { var wilayaColumns = dayraItem.Elements("td").ToArray(); if (wilayaColumns.Length < 4) { continue; } var n = new AdmnistrativeLocality(); l2.Add(n); // <table> // <tr> // <td> // <input var id = wilayaColumns[0].Element("table").Element("tr").Element("td").Element("input").GetAttributeValue("id", ""); n.ISO = id.Substring(3); n.CodeParrent = wilayaItem.Code; var w1 = wilayaColumns[1]; var a1 = w1.Element("a"); n.Level = 2; n.URL = @"http://www.geopoliticalmaps.com/" + a1.GetAttributeValue("href", ""); n.URL_Name = a1.InnerText.Trim(); n.Name = (n.URL_Name.Replace("Daira", "").Trim()); // n.ISO = wilayaColumns[2].InnerText.Trim(); // n.Code = int.Parse(n.ISO.Replace("DZ-", "")); n.NameAr = wilayaColumns[2].InnerText.Replace("دائرة", "").Trim(); n.NameBerber = wilayaColumns[3].InnerText.Trim(); if (int.TryParse(wilayaColumns[4].InnerText.Trim(), out int population)) { n.Population = population; } if (double.TryParse(wilayaColumns[5].InnerText.Trim(), out double area)) { n.Area = area; } } } return(l2); }
private static List <AdmnistrativeLocality> AddLevelOne() { var dzHtml = htmlCode("dz"); DownloadFile(rootDZ, dzHtml); var doc = new HtmlDocument(); doc.Load(dzHtml); var table = doc.DocumentNode.SelectSingleNode("//*[contains(@class,'table-condensed')]"); var wilayaLines = table.Elements("tr").Skip(1).ToArray(); var l1 = new List <AdmnistrativeLocality>(); foreach (var item in wilayaLines) { var wilayaColumns = item.Elements("td").ToArray(); if (wilayaColumns.Length < 4) { continue; } var n = new AdmnistrativeLocality(); l1.Add(n); var w1 = wilayaColumns[1]; var a1 = w1.Element("a"); n.Level = 1; n.URL = @"http://www.geopoliticalmaps.com/" + a1.GetAttributeValue("href", ""); n.URL_Name = a1.InnerText.Trim(); n.Name = (n.URL_Name.Replace("Province", "").Trim()); n.ISO = wilayaColumns[2].InnerText.Trim(); n.Code = int.Parse(n.ISO.Replace("DZ-", "")); n.NameAr = wilayaColumns[3].InnerText.Trim(); n.NameBerber = wilayaColumns[4].InnerText.Trim(); n.Population = int.Parse(wilayaColumns[5].InnerText.Trim()); n.Area = double.Parse(wilayaColumns[6].InnerText.Trim()); Console.WriteLine(item); } return(l1); }