public List <ViseonHeaderModel> GetViseonElements(HtmlDocument doc) { try { var headers = new List <ViseonHeaderModel>(); foreach (var type in ViseonStaticData.HeaderElements) { var list = doc.DocumentNode.GetElementsByTagName(type); foreach (var item in list) { headers.Add(new ViseonHeaderModel() { HtmlTagName = item.Name, Text = item.InnerText, WordCount = WordCounting.CountWords(item.InnerText), }); } } return(headers); } catch (Exception ex) { return(new List <ViseonHeaderModel>()); } }
public ViseonTitleModel GetViseonElement(HtmlDocument doc) { try { var list = doc.DocumentNode.GetElementsByTagName(ViseonStaticData.TitleElement); var title = list.FirstOrDefault(); // no title found if (title == null) { return new ViseonTitleModel() { HtmlTagName = ViseonStaticData.TitleElement, Text = "", WordCount = 0 } } ; return(new ViseonTitleModel() { Text = title.InnerText, WordCount = WordCounting.CountWords(title.InnerText), HtmlTagName = ViseonStaticData.TitleElement, CharacterCount = title.InnerText.Length }); } catch (Exception e) { Console.WriteLine(e); throw; } }
public ViseonDescriptionModel GetViseonElement(HtmlDocument doc) { try { var list = doc.DocumentNode.GetElementsByTagName(ViseonStaticData.MetaElements); HtmlNode desc = null; foreach (var htmlNode in list) { if (htmlNode.Attributes[ViseonStaticData.Meta.NameProp] == null) { continue; } if (!String.Equals(htmlNode.Attributes[ViseonStaticData.Meta.NameProp].Value, ViseonStaticData.MetaDescription, StringComparison.CurrentCultureIgnoreCase)) { continue; } desc = htmlNode; break; } // no desc if (desc == null) { return new ViseonDescriptionModel() { HtmlTagName = ViseonStaticData.MetaDescription, Text = "", WordCount = 0 } } ; var text = desc.Attributes[ViseonStaticData.Meta.ContentProp]?.Value; return(new ViseonDescriptionModel() { Text = text ?? "", WordCount = text == null ? 0 : WordCounting.CountWords(text), HtmlTagName = ViseonStaticData.MetaDescription, CharacterCount = text?.Length ?? 0 }); } catch (Exception e) { Console.WriteLine(e); throw; } }
public List <ViseonParagraphModel> GetViseonElements(HtmlDocument doc) { try { var paras = doc.DocumentNode.GetElementsByName(ViseonStaticData.ParaElement); var result = new List <ViseonParagraphModel>(); foreach (var htmlNode in paras) { result.Add(new ViseonParagraphModel() { HtmlTagName = ViseonStaticData.ParaElement, Text = htmlNode.InnerText, WordCount = WordCounting.CountWords(htmlNode.InnerText) }); } return(result); } catch (Exception ex) { return(new List <ViseonParagraphModel>()); } }