public static ContractsInfo PostedContracts(string html) { HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); ContractsInfo info = new ContractsInfo(); var countEl = doc.DocumentNode.SelectSingleNode("/html/body/div[1]/div[5]/div/div[2]/div[1]/ul/li[2]/span/sup"); if (countEl == null) { return(null); } info.Count = int.Parse(countEl.InnerText.GetHTMLDecoded()); info.Sum = doc.DocumentNode.SelectSingleNode("/html/body/div[1]/div[5]/div/div[2]/div[1]/ul/li[2]/span/i").InnerText.GetHTMLDecoded(); var items = doc.DocumentNode.SelectNodes(".//li[@class='block relative size13']"); if (items == null) { return(null); } foreach (var item in items) { RemoveElements(item, ".//div[@class='peripheral textRight']"); ChangeNodeName(item, ".//div[@class='stickOut textRight stickOut__displayed line23 marB3i']", "span"); ChangeNodeName(item, ".//div[@class='noMargin fauxh3']", "span"); Contract contr = new Contract(); var rows = item.SelectNodes(".//div[@class='stickOut kad-stickOut stickOut__displayed']"); if (rows != null) { ChangeNodeName(item, ".//div[@class='stickOut kad-stickOut stickOut__displayed']", "span"); RemoveP(item); contr.Number = item.OuterHtml.Replace("stickOut kad-stickOut stickOut__displayed", "silversmall").Replace("Показать все документы", ""); contr.Number = contr.Number.Replace("href", "attr"); contr.Number = contr.Number.Replace("block relative size13", "").Replace("</span><br>\r\n\t\t\r\n\t\t</span><br>", "</span></span><br>"); contr.Number = contr.Number.Replace("<span class=\"brown\">", "<span class='silversmall'>Сумма- </span><span class=\"brown\">"); contr.Number = contr.Number.Replace("marB5", "").Replace("marT7_lt768", ""); contr.Number = contr.Number.Replace("<span class=\"noMargin fauxh3\"><span class=\"noMargin fauxh3\">", " <span class=\"noMargin fauxh3\"><span class=\"noMargin fauxh3\">"); } info.Contracts.Add(contr); } return(info); }
private static string ContractsTable(ContractsInfo info, string name) { string html = ""; if (info != null) { html += string.Format(BR + @" <h3 class='h3class'>{2}</h3> <span style='font-size:13px;'>Всего (<span class='silversmall'>{0}</span>). Общая сумма (<span class='silversmall'>{1}</span>)</span> <br> <br> <ol>", info.Count, info.Sum, name); foreach (var contract in info.Contracts) { html += string.Format("{0}<br>", contract.Number); } html += "</ol>"; } return(html); }