private static void CheckHtmlElements( IHtmlDivElement htmlDivElement, Action <IElement> onInvalidElement, Action <IElement, IAttr> onInvalidAttr) { EnsureArg.IsNotNull(htmlDivElement, nameof(htmlDivElement)); EnsureArg.IsNotNull(onInvalidElement, nameof(onInvalidElement)); EnsureArg.IsNotNull(onInvalidAttr, nameof(onInvalidAttr)); // Ensure only allowed elements and attributes are used foreach (var element in htmlDivElement.QuerySelectorAll("*")) { if (!AllowedElements.Contains(element.NodeName)) { onInvalidElement(element); } foreach (var attr in element.Attributes.ToArray()) { if (!AllowedAttributes.Contains(attr.Name)) { onInvalidAttr(element, attr); } if (string.Equals("src", attr.Name, StringComparison.OrdinalIgnoreCase)) { if (!Src.Any(x => attr.Value.StartsWith(x, StringComparison.OrdinalIgnoreCase))) { onInvalidAttr(element, attr); } } } } }
private static void CheckHtmlElements( IHtmlDivElement htmlDivElement, Action <IElement> onInvalidElement, Action <IElement, IAttr> onInvalidAttr) { EnsureArg.IsNotNull(htmlDivElement, nameof(htmlDivElement)); EnsureArg.IsNotNull(onInvalidElement, nameof(onInvalidElement)); EnsureArg.IsNotNull(onInvalidAttr, nameof(onInvalidAttr)); ValidateAttributes(htmlDivElement, onInvalidAttr); // Ensure only allowed elements and attributes are used foreach (IElement element in htmlDivElement.QuerySelectorAll("*")) { if (!AllowedElements.Contains(element.NodeName)) { onInvalidElement(element); } ValidateAttributes(element, onInvalidAttr); } }