コード例 #1
0
ファイル: HeaderLogic.cs プロジェクト: ajzeffer/viSEOn
 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>());
     }
 }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
ファイル: ParagraphLogic.cs プロジェクト: ajzeffer/viSEOn
 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>());
     }
 }