Example #1
0
        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);
        }
Example #2
0
        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);
        }