コード例 #1
0
        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);
                        }
                    }
                }
            }
        }
コード例 #2
0
        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);
            }
        }