Naak.HtmlRules.Default.HeadingsAreLogicallyOrdered.ValidateHtml C# (CSharp) Method

ValidateHtml() public method

public ValidateHtml ( HtmlAgilityPack.HtmlDocument document ) : IEnumerable
document HtmlAgilityPack.HtmlDocument
return IEnumerable
        public IEnumerable<ValidationError> ValidateHtml(HtmlDocument document)
        {
            var records = new List<ValidationError>();
            var headingNodes = new List<HtmlNode>();

            PopulateHeadingNodeList(document.DocumentNode, headingNodes);

            int currentLevel = 0;

            foreach (var headingNode in headingNodes)
            {
                var expectedLevel = currentLevel + 1;
                var foundLevel = int.Parse(headingNode.Name.Replace("h", string.Empty));

                if (foundLevel > expectedLevel)
                {
                    var message = string.Format("Illogical heading order: Expected to find <h{0}> but found {1} instead", expectedLevel, headingNode.OuterHtml);
                    records.Add(new ValidationError(message));
                    break;
                }

                currentLevel = foundLevel;
            }

            return records;
        }
HeadingsAreLogicallyOrdered