AngleSharp by AngleSharp

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

.NET API 1,213,440 bytes

 HtmlTemplateElement

Represents the template element.
using AngleSharp.Dom.Css; using AngleSharp.Html; namespace AngleSharp.Dom.Html { internal sealed class HtmlTemplateElement : HtmlElement, IHtmlTemplateElement, IHtmlElement, IElement, INode, IEventTarget, IMarkupFormattable, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle { private readonly DocumentFragment _content; public IDocumentFragment Content => _content; public HtmlTemplateElement(Document owner, string prefix = null) : base(owner, Tags.Template, prefix, NodeFlags.Special | NodeFlags.Scoped | NodeFlags.HtmlTableSectionScoped | NodeFlags.HtmlTableScoped) { _content = new DocumentFragment(owner); } public void PopulateFragment() { while (base.HasChildNodes) { Node node = base.ChildNodes[0]; RemoveNode(0, node); _content.AddNode(node); } } public override INode Clone(bool deep = true) { HtmlTemplateElement htmlTemplateElement = new HtmlTemplateElement(base.Owner, null); Node.CopyProperties(this, htmlTemplateElement, deep); Element.CopyAttributes(this, htmlTemplateElement); for (int i = 0; i < _content.ChildNodes.Length; i++) { Node node = _content.ChildNodes[i].Clone(deep) as Node; if (node != null) htmlTemplateElement._content.AddNode(node); } return htmlTemplateElement; } public override string ToHtml(IMarkupFormatter formatter) { string str = formatter.OpenTag(this, false); string str2 = _content.ChildNodes.ToHtml(formatter); string str3 = formatter.CloseTag(this, false); return str + str2 + str3; } internal override void NodeIsAdopted(Document oldDocument) { _content.Owner = oldDocument; } } }