public void OutputJSON(HtmlToJson json3) { string output = JsonConvert.SerializeObject(json3); File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "DocumentJson.json", output, Encoding.GetEncoding(1251)); textBox2.Clear(); textBox2.Text = output; }
public HtmlToJson GetJsonHtml3(Match m) { HtmlToJson json3 = new HtmlToJson(); int lengthMatch = GetCountMatch(m); for (int i = 0; i < lengthMatch; i++) { if (i > 10) { Data tmpData = new Data(); tmpData.NameRow = m.Groups[1].Value.Replace("\t", String.Empty); for (int j = 0; j < 5; j++) { lengthMatch--; m = m.NextMatch(); Column tmpColumn = new Column(); switch (j) { case 0: tmpColumn.NameColumn = "Усього, тис. осіб"; break; case 1: tmpColumn.NameColumn = "Підприємства, тис. осіб"; break; case 2: tmpColumn.NameColumn = "Підприємства, у відсотках до загальної кількості"; break; case 3: tmpColumn.NameColumn = "Фізичні особи-підприєпмці, тис. осіб"; break; case 4: tmpColumn.NameColumn = "Фізичні особи-підприєпмці, у відсотках до загальної кількості"; break; } try { tmpColumn.Value = Convert.ToSingle(m.Groups[1].Value); } catch { tmpColumn.Value = 0; } tmpData.Columns.Add(tmpColumn); } json3.Datas.Add(tmpData); } m = m.NextMatch(); } json3.Link = textBox1.Text; return(json3); }
public HtmlToJson GetJsonHtml4(Match m) { HtmlToJson json3 = new HtmlToJson(); int lengthMatch = GetCountMatch(m); for (int i = 0; i < lengthMatch; i++) { if (i > 22) { Data tmpData = new Data(); tmpData.NameRow = m.Groups[1].Value.Replace("\t", String.Empty); for (int j = 0; j < 3; j++) { i++; m = m.NextMatch(); Column tmpColumn = new Column(); switch (j) { case 0: tmpColumn.NameColumn = "Результати від операційної діяльності"; break; case 1: tmpColumn.NameColumn = "Витрати операційної діяльності"; break; case 2: tmpColumn.NameColumn = "Рівень рентабельності збитковості"; break; } try { tmpColumn.Value = Convert.ToSingle(m.Groups[1].Value); } catch { tmpColumn.Value = 0; } tmpData.Columns.Add(tmpColumn); } json3.Datas.Add(tmpData); } m = m.NextMatch(); } json3.Link = textBox1.Text; return(json3); }
private void button1_Click(object sender, EventArgs e) { HtmlToJson json3 = new HtmlToJson(); json3.Link = textBox1.Text; using (var request = new HttpRequest()) { String sourceWebPage = request.Get(textBox1.Text).ToString(); sourceWebPage = ConvertSource(sourceWebPage); String pattern1 = @"<font size=" + "\"" + "2" + "\">" + "(.*?)<" + "\\/font>"; String pattern2 = @"Verdana.*?" + "\">(.*?)<\\/span>"; String pattern3 = @"font-size:.?10.0pt.*?" + "\">(.*?)<\\/span>"; String pattern4 = @"Verdana.*?" + "\">(<font size=" + "\"2" + "\">)?(.*?)(<\\/font>)?<\\/span>"; RegexOptions options = RegexOptions.Singleline | RegexOptions.Multiline; Match m = Regex.Match(sourceWebPage, pattern1, options); if (textBox1.Text.Contains("kzp_u_14.htm")) { json3 = GetJsonHtml3(m); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("ksg_u_14.htm")) { json3 = GetJsonHtml2(m); OutputJSON(json3); } else if (textBox1.Text.Contains("kp_ed_u_2015.htm")) { json3 = GetJsonHtml1(m, 17); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("rodp_ed_0116_u.htm")) { Match m1 = Regex.Match(sourceWebPage, pattern2, options); json3 = GetJsonHtml4(m1); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("orp_ed_u_2015.htm")) { json3 = GetJsonHtml5(m, 24); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("ovpp_2014_u.htm")) { json3 = GetJsonHtml5(m, 21); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("chpr_ed_0116_u.htm")) { Match m3 = Regex.Match(sourceWebPage, pattern3, options); json3 = GetJsonHtml6(m3); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } else if (textBox1.Text.Contains("vpp_ed_u_2015.htm")) { Match m4 = Regex.Match(sourceWebPage, pattern4, options); json3 = GetJsonHtml1(m4, 20); json3?.Datas.Remove(json3.Datas[json3.Datas.Count - 1]); OutputJSON(json3); } } }
public HtmlToJson GetJsonHtml1(Match m, int index) { int indexGroup = (index == 20) ? 2 : 1; HtmlToJson json3 = new HtmlToJson(); int lengthMatch = GetCountMatch(m); for (int i = 0; i < lengthMatch; i++) { if (i >= index) { Data tmpData = new Data(); tmpData.NameRow = m.Groups[indexGroup].Value.Replace("\t", String.Empty); m = (i == index) ? m.NextMatch() : m; for (int j = 0; j < 9; j++) { i++; m = m.NextMatch(); Column tmpColumn = new Column(); switch (j) { case 0: tmpColumn.NameColumn = "Усього одиниць"; break; case 1: tmpColumn.NameColumn = "Великі підприємства, одиниць"; break; case 2: tmpColumn.NameColumn = "Великі підприємства, у відсотках до загальної кількості"; break; case 3: tmpColumn.NameColumn = "Середні підприємства, одиниць"; break; case 4: tmpColumn.NameColumn = "Середні підприємства, у відсотках до загальної кількості"; break; case 5: tmpColumn.NameColumn = "Малі підприємства, одиниць"; break; case 6: tmpColumn.NameColumn = "Малі підприємства, у відсотках до загальної кількості"; break; case 7: tmpColumn.NameColumn = "Мікропідприємства, одиниць"; break; case 8: tmpColumn.NameColumn = "Мікропідприємства, у відсотках до загальної кількості"; break; } try { tmpColumn.Value = Convert.ToSingle(m.Groups[indexGroup].Value); } catch { tmpColumn.Value = 0; } tmpData.Columns.Add(tmpColumn); } json3.Datas.Add(tmpData); } m = m.NextMatch(); } json3.Link = textBox1.Text; return(json3); }
public HtmlToJson GetJsonHtml6(Match m) { HtmlToJson json3 = new HtmlToJson(); int lengthMatch = GetCountMatch(m); for (int i = 0; i < lengthMatch; i++) { if (i >= 17) { Data tmpData = new Data(); tmpData.NameRow = m.Groups[1].Value.Replace("\t", String.Empty); if (i == 17) { m = m.NextMatch(); tmpData.NameRow = m.Groups[1].Value.Replace("\t", String.Empty); i++; } for (int j = 0; j < 5; j++) { i++; m = m.NextMatch(); Column tmpColumn = new Column(); switch (j) { case 0: tmpColumn.NameColumn = "Фінансовий результат(сальдо)"; break; case 1: tmpColumn.NameColumn = "Підприємства,які одержали прибуток у % до загальної кількості"; break; case 2: tmpColumn.NameColumn = "Підприємства,які одержали прибуток фінансовий результат"; break; case 3: tmpColumn.NameColumn = "Підприємства,які одержали збиток у % до загальної кількості"; break; case 4: tmpColumn.NameColumn = "Підприємства,які одержали збиток фінансовий результат"; break; } try { tmpColumn.Value = Convert.ToSingle(m.Groups[1].Value); } catch { tmpColumn.Value = 0; } tmpData.Columns.Add(tmpColumn); } json3.Datas.Add(tmpData); } m = m.NextMatch(); } json3.Link = textBox1.Text; return(json3); }