WebMarkupMin.Core.GenericHtmlMinifier.CanRemoveOptionalEndTagByParentTag C# (CSharp) Метод

CanRemoveOptionalEndTagByParentTag() приватный Метод

Checks whether remove an the optional end tag
private CanRemoveOptionalEndTagByParentTag ( WebMarkupMin.Core.Parsers.HtmlTag optionalEndTag, WebMarkupMin.Core.Parsers.HtmlTag parentTag ) : bool
optionalEndTag WebMarkupMin.Core.Parsers.HtmlTag Optional end tag
parentTag WebMarkupMin.Core.Parsers.HtmlTag Parent tag
Результат bool
        private bool CanRemoveOptionalEndTagByParentTag(HtmlTag optionalEndTag, HtmlTag parentTag)
        {
            string optionalEndTagNameInLowercase = optionalEndTag.NameInLowercase;
            if (_settings.PreservableOptionalTagCollection.Contains(optionalEndTagNameInLowercase))
            {
                return false;
            }

            string parentTagNameInLowercase = parentTag.NameInLowercase;
            bool canRemove;

            switch (optionalEndTagNameInLowercase)
            {
                case "p":
                    canRemove = parentTagNameInLowercase != "a";
                    break;
                case "li":
                    canRemove = parentTagNameInLowercase == "ul" || parentTagNameInLowercase == "ol"
                        || parentTagNameInLowercase == "menu";
                    break;
                case "tbody":
                case "tfoot":
                    canRemove = parentTagNameInLowercase == "table";
                    break;
                case "tr":
                    canRemove = parentTagNameInLowercase == "table" || parentTagNameInLowercase == "thead"
                        || parentTagNameInLowercase == "tbody" || parentTagNameInLowercase == "tfoot";
                    break;
                case "td":
                case "th":
                    canRemove = parentTagNameInLowercase == "tr";
                    break;
                case "option":
                    canRemove = parentTagNameInLowercase == "select" || parentTagNameInLowercase == "optgroup"
                        || parentTagNameInLowercase == "datalist";
                    break;
                case "optgroup":
                    canRemove = parentTagNameInLowercase == "select";
                    break;
                case "dd":
                    canRemove = parentTagNameInLowercase == "dl";
                    break;
                case "rt":
                    canRemove = parentTagNameInLowercase == "ruby" || parentTagNameInLowercase == "rtc";
                    break;
                case "rp":
                case "rb":
                case "rtc":
                    canRemove = parentTagNameInLowercase == "ruby";
                    break;
                default:
                    canRemove = false;
                    break;
            }

            return canRemove;
        }