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) { 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; } }