AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.5.0" />

.NET API 681,472 bytes

 HTMLFactory

class HTMLFactory
using System; using System.Collections.Generic; namespace AngleSharp.DOM.Html { internal class HTMLFactory { private static readonly Dictionary<string, Func<HTMLElement>> elements; static HTMLFactory() { elements = new Dictionary<string, Func<HTMLElement>>(StringComparer.OrdinalIgnoreCase); elements.Add("base", () => new HTMLBaseElement()); elements.Add("basefont", () => new HTMLBaseFontElement()); elements.Add("link", () => new HTMLLinkElement()); elements.Add("a", () => new HTMLAnchorElement()); elements.Add("button", () => new HTMLButtonElement()); elements.Add("input", () => new HTMLInputElement()); elements.Add("html", () => new HTMLHtmlElement()); elements.Add("isindex", () => new HTMLIsIndexElement()); elements.Add("br", () => new HTMLBRElement()); elements.Add("embed", () => new HTMLEmbedElement()); elements.Add("div", () => new HTMLDivElement()); elements.Add("area", () => new HTMLAreaElement()); elements.Add("img", () => new HTMLImageElement()); elements.Add("dl", () => new HTMLDListElement()); elements.Add("body", () => new HTMLBodyElement()); elements.Add("fieldset", () => new HTMLFieldSetElement()); elements.Add("head", () => new HTMLHeadElement()); elements.Add("menu", () => new HTMLMenuElement()); elements.Add("meta", () => new HTMLMetaElement()); elements.Add("ol", () => new HTMLOListElement()); elements.Add("p", () => new HTMLParagraphElement()); elements.Add("select", () => new HTMLSelectElement()); elements.Add("ul", () => new HTMLUListElement()); elements.Add("hr", () => new HTMLHRElement()); elements.Add("dir", () => new HTMLDirectoryElement()); elements.Add("font", () => new HTMLFontElement()); elements.Add("form", () => new HTMLFormElement()); elements.Add("param", () => new HTMLParamElement()); elements.Add("pre", () => new HTMLPreElement()); elements.Add("textarea", () => new HTMLTextAreaElement()); elements.Add("blockquote", () => new HTMLQuoteElement { NodeName = "blockquote" }); elements.Add("quote", () => new HTMLQuoteElement { NodeName = "quote" }); elements.Add("q", () => new HTMLQuoteElement { NodeName = "q" }); elements.Add("canvas", () => new HTMLCanvasElement()); elements.Add("caption", () => new HTMLTableCaptionElement()); elements.Add("th", () => new HTMLTableCellElement { NodeName = "th" }); elements.Add("td", () => new HTMLTableCellElement()); elements.Add("tr", () => new HTMLTableRowElement()); elements.Add("tbody", () => new HTMLTableSectionElement()); elements.Add("tfoot", () => new HTMLTableSectionElement { NodeName = "tfoot" }); elements.Add("thead", () => new HTMLTableSectionElement { NodeName = "thead" }); elements.Add("table", () => new HTMLTableElement()); elements.Add("colgroup", () => new HTMLTableColElement { NodeName = "colgroup" }); elements.Add("col", () => new HTMLTableColElement()); elements.Add("del", () => new HTMLModElement { NodeName = "del" }); elements.Add("ins", () => new HTMLModElement()); elements.Add("legend", () => new HTMLLegendElement()); elements.Add("label", () => new HTMLLabelElement()); elements.Add("applet", () => new HTMLAppletElement()); elements.Add("object", () => new HTMLObjectElement()); elements.Add("optgroup", () => new HTMLOptGroupElement()); elements.Add("option", () => new HTMLOptionElement()); elements.Add("style", () => new HTMLStyleElement()); elements.Add("script", () => new HTMLScriptElement()); elements.Add("iframe", () => new HTMLIFrameElement()); elements.Add("title", () => new HTMLTitleElement()); elements.Add("li", () => new HTMLLIElement { NodeName = "li" }); elements.Add("dd", () => new HTMLLIElement { NodeName = "dd" }); elements.Add("dt", () => new HTMLLIElement { NodeName = "dt" }); elements.Add("frameset", () => new HTMLFrameSetElement()); elements.Add("frame", () => new HTMLFrameElement()); elements.Add("h1", () => new HTMLHeadingElement { NodeName = "h1" }); elements.Add("h2", () => new HTMLHeadingElement { NodeName = "h2" }); elements.Add("h3", () => new HTMLHeadingElement { NodeName = "h3" }); elements.Add("h4", () => new HTMLHeadingElement { NodeName = "h4" }); elements.Add("h5", () => new HTMLHeadingElement { NodeName = "h5" }); elements.Add("h6", () => new HTMLHeadingElement { NodeName = "h6" }); elements.Add("audio", () => new HTMLAudioElement()); elements.Add("video", () => new HTMLVideoElement()); elements.Add("details", () => new HTMLDetailsElement()); elements.Add("span", () => new HTMLSpanElement()); elements.Add("dialog", () => new HTMLDialogElement()); elements.Add("source", () => new HTMLSourceElement()); elements.Add("track", () => new HTMLTrackElement()); elements.Add("wbr", () => new HTMLWbrElement()); elements.Add("b", () => new HTMLBoldElement()); elements.Add("big", () => new HTMLBigElement()); elements.Add("strike", () => new HTMLStrikeElement()); elements.Add("code", () => new HTMLCodeElement()); elements.Add("em", () => new HTMLEmphasizeElement()); elements.Add("i", () => new HTMLItalicElement()); elements.Add("s", () => new HTMLStruckElement()); elements.Add("small", () => new HTMLSmallElement()); elements.Add("strong", () => new HTMLStrongElement()); elements.Add("u", () => new HTMLUnderlineElement()); elements.Add("tt", () => new HTMLTeletypeTextElement()); elements.Add("nobr", () => new HTMLNoNewlineElement()); elements.Add("address", () => new HTMLAddressElement()); elements.Add("main", () => new HTMLSemanticElement { NodeName = "main" }); elements.Add("summary", () => new HTMLSemanticElement { NodeName = "summary" }); elements.Add("xmp", () => new HTMLSemanticElement { NodeName = "xmp" }); elements.Add("center", () => new HTMLSemanticElement { NodeName = "center" }); elements.Add("listing", () => new HTMLSemanticElement { NodeName = "listing" }); elements.Add("nav", () => new HTMLSemanticElement { NodeName = "nav" }); elements.Add("article", () => new HTMLSemanticElement { NodeName = "article" }); elements.Add("aside", () => new HTMLSemanticElement { NodeName = "aside" }); elements.Add("figcaption", () => new HTMLSemanticElement { NodeName = "figcaption" }); elements.Add("figure", () => new HTMLSemanticElement { NodeName = "figure" }); elements.Add("section", () => new HTMLSemanticElement { NodeName = "section" }); elements.Add("footer", () => new HTMLSemanticElement { NodeName = "footer" }); elements.Add("header", () => new HTMLSemanticElement { NodeName = "header" }); elements.Add("hgroup", () => new HTMLSemanticElement { NodeName = "hgroup" }); elements.Add("plaintext", () => new HTMLSemanticElement { NodeName = "plaintext" }); elements.Add("bgsound", () => new HTMLBgsoundElement()); elements.Add("marquee", () => new HTMLMarqueeElement()); elements.Add("noembed", () => new HTMLNoElement { NodeName = "noembed" }); elements.Add("noframes", () => new HTMLNoElement { NodeName = "noframes" }); elements.Add("noscript", () => new HTMLNoElement { NodeName = "noscript" }); elements.Add("menuitem", () => new HTMLMenuItemElement()); elements.Add("cite", () => new HTMLElement { NodeName = "cite" }); elements.Add("ruby", () => new HTMLRubyElement()); elements.Add("rt", () => new HTMLRTElement()); elements.Add("rp", () => new HTMLRPElement()); } public static HTMLElement Create(string tag, Document document) { if (elements.TryGetValue(tag, out Func<HTMLElement> value)) { HTMLElement hTMLElement = value(); hTMLElement.OwnerDocument = document; return hTMLElement; } HTMLUnknownElement hTMLUnknownElement = new HTMLUnknownElement(); hTMLUnknownElement.NodeName = tag; hTMLUnknownElement.OwnerDocument = document; return hTMLUnknownElement; } } }