Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
            }

        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
 public static int GetInt_value(IHtmlElement item, string str)
 {
     return(item.Exists(str) ? Convert.ToInt32(item.FindFirst(str).InnerText().Trim().Replace("图", "")) : 0);
 }
Ejemplo n.º 8
0
 public static string GetN_value(IHtmlElement item, string str)
 {
     return(item.Exists(str) ? item.FindFirst(str).InnerText().Trim() : string.Empty);
 }
Ejemplo n.º 9
0
 private static string G_mtdVoid(string huxing, IHtmlElement spn, string p)
 {
     return(spn.Exists(p) ? spn.FindFirst(p).InnerText() : huxing);
 }