示例#1
0
        Building ParseBuildingFromHtml(BuildingJsonInfo info, String html)
        {
            var start = "<table id=\"BuildData\">";
            var end = "</table>";
            var startIndex = html.IndexOf(start);
            var endIndex = html.IndexOf(end, startIndex) + end.Length;
            var tableXml = html.Substring(startIndex, endIndex - startIndex);
            

            var building = new Building()
            {
                Name = info.name,
                Latitude = info.lat,
                Longitude = info.lng
            };

            HtmlDocument document = new HtmlDocument();
            document.LoadHtml(tableXml);
            HtmlNodeCollection collection = document.DocumentNode.SelectNodes("//tr");
            foreach (HtmlNode property in collection)
            {
                var trs = property.Descendants("td");
                var name = trs.First().InnerText.Trim();
                var value = trs.Last().FirstChild.InnerText.Trim();
                if (String.IsNullOrEmpty(value)) {
                    value = trs.Last().InnerText.Trim();
                    value = value.Replace("\t", "");
                    value = value.Replace("\n", "");
                }
                
                SetBuilding(building, name, value);
            }

            return building;
        }
示例#2
0
 async Task<Building> GetBuilding(BuildingJsonInfo info)
 {
     var buildingUrl = "http://mskguru.ru/novostroyki/" + info.id + "-" + info.url;
     var html = await HttpHelper.HttpGet(buildingUrl);
     var building = ParseBuildingFromHtml(info, html);
     building.Url = buildingUrl;
     return building;
 }