public TableEntity(IHtmlElement tableElement) { var head = tableElement.FindFirst("thead"); this.THead = new THeadEntity(head); var headTrList = head.Find("tr"); foreach (var tr in headTrList) { var trEntity = new TrEntity(tr); var tdList = tr.Find("td").ToList(); foreach (var td in tdList) { trEntity.TdList.Add(new TdEntity(td) { Text = td.InnerText() }); } this.THead.TrList.Add(trEntity); } var body = tableElement.FindFirst("tbody"); this.TBody = new TBodyEntity(body); var bodyTrList = body.Find("tr"); foreach (var tr in bodyTrList) { var trEntity = new TrEntity(tr); var tdList = tr.Find("td").ToList(); foreach (var td in tdList) { trEntity.TdList.Add(new TdEntity(td) { Text = td.InnerText() }); } this.TBody.TrList.Add(trEntity); } }
private ExamItem BuildEntity(int moduleId, IHtmlElement item) { string selector = @"td[width]"; if (false == item.Exists(selector)) { return(null); } var id_element = item.FindFirst(selector); if (id_element == null) { return(null); } try { var match = Regex.Match(id_element.InnerText(), @"\d+"); int id = Convert.ToInt32(match.Value.ToString().Trim()); string title = id_element.Parent().FindFirst(@".MsoNormal>span").InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); string answer = item.FindFirst("#answer").InnerText().Trim(); string strExamType = item.FindFirst(".st_title").InnerText(); string examType = Regex.Match(strExamType, @"(?<=、).*").Value.Trim(); if (answer.StartsWith("答案:")) { answer = answer.Substring(3).Trim(); } var itemType = ItemTypeService.GetByText(examType); if (itemType == null) { logger.Info(string.Format("未匹配的题目类别[{0}],ExamId=[{1}]", examType, id)); } var model = new ExamItem() { Id = id, Title = title, Answer = answer, OriginalHtml = item.InnerHtml(), Module_Id = moduleId, ItemType = itemType != null ? itemType.Id : 0, CreateTime = DateTime.Now, DelFlag = false }; return(model); } catch (Exception ex) { WriteLog(item.ToString(), ex.Message); throw; } }
private ExamItem BuildEntity(int moduleId, IHtmlElement item) { string selector = @"td[width]"; if (false == item.Exists(selector)) { return null; } var id_element = item.FindFirst(selector); if (id_element == null) { return null; } try { var match = Regex.Match(id_element.InnerText(), @"\d+"); int id = Convert.ToInt32(match.Value.ToString().Trim()); string title = id_element.Parent().FindFirst(@".MsoNormal>span").InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); string answer = item.FindFirst("#answer").InnerText().Trim(); string strExamType = item.FindFirst(".st_title").InnerText(); string examType = Regex.Match(strExamType, @"(?<=、).*").Value.Trim(); if (answer.StartsWith("答案:")) { answer = answer.Substring(3).Trim(); } var itemType = ItemTypeService.GetByText(examType); if (itemType == null) { logger.Info(string.Format("未匹配的题目类别[{0}],ExamId=[{1}]", examType, id)); } var model = new ExamItem() { Id = id, Title = title, Answer = answer, OriginalHtml = item.InnerHtml(), Module_Id = moduleId, ItemType = itemType != null ? itemType.Id : 0, CreateTime = DateTime.Now, DelFlag = false }; return model; } catch (Exception ex) { WriteLog(item.ToString(), ex.Message); throw; } }
private ExamItem BuildEntity(int moduleId, IHtmlElement item) { try { var id_element = item.FindFirst(@"tr[valign]>td"); var match = Regex.Match(id_element.InnerText(), @"\d+"); int id = Convert.ToInt32(match.Value.Trim()); string title = id_element.NextElement().InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); string answer = item.FindFirst("div[id]").InnerText().Trim().RemoveHtmlEncode(); string examType = item.PreviousElement().Descendants("td") .ElementAt(1) .InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); if (answer.StartsWith("答案:")) { answer = answer.Substring(3).Trim(); } var itemType = ItemTypeService.GetByText(examType); if (itemType == null) { logger.Info(string.Format("未匹配的题目类别[{0}],ExamId=[{1}]", examType, id)); } var model = new ExamItem() { Id = id, Title = title, Answer = answer, OriginalHtml = item.InnerHtml(), Module_Id = moduleId, ItemType = itemType != null ? itemType.Id : 0, CreateTime = DateTime.Now, DelFlag = false }; return model; } catch (Exception ex) { WriteLog(item.ToString(), ex.Message); throw; } }
private ExamItem BuildEntity(int moduleId, IHtmlElement item) { try { var id_element = item.FindFirst(@"tr[valign]>td"); var match = Regex.Match(id_element.InnerText(), @"\d+"); int id = Convert.ToInt32(match.Value.Trim()); string title = id_element.NextElement().InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); string answer = item.FindFirst("div[id]").InnerText().Trim().RemoveHtmlEncode(); string examType = item.PreviousElement().Descendants("td") .ElementAt(1) .InnerText().Trim().RemoveHtml().RemoveHtmlEncode(); if (answer.StartsWith("答案:")) { answer = answer.Substring(3).Trim(); } var itemType = ItemTypeService.GetByText(examType); if (itemType == null) { logger.Info(string.Format("未匹配的题目类别[{0}],ExamId=[{1}]", examType, id)); } var model = new ExamItem() { Id = id, Title = title, Answer = answer, OriginalHtml = item.InnerHtml(), Module_Id = moduleId, ItemType = itemType != null ? itemType.Id : 0, CreateTime = DateTime.Now, DelFlag = false }; return(model); } catch (Exception ex) { WriteLog(item.ToString(), ex.Message); throw; } }
public static int GetInt_value(IHtmlElement item, string str) { return(item.Exists(str) ? Convert.ToInt32(item.FindFirst(str).InnerText().Trim().Replace("图", "")) : 0); }
public static string GetN_value(IHtmlElement item, string str) { return(item.Exists(str) ? item.FindFirst(str).InnerText().Trim() : string.Empty); }
private static string G_mtdVoid(string huxing, IHtmlElement spn, string p) { return(spn.Exists(p) ? spn.FindFirst(p).InnerText() : huxing); }