AngleSharp by AngleSharp

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

.NET API 1,214,976 bytes

 HtmlTemplateElement

Represents the template element.
using AngleSharp.Dom.Css; using AngleSharp.Dom.Events; using AngleSharp.Html; using System.IO; namespace AngleSharp.Dom.Html { internal sealed class HtmlTemplateElement : HtmlElement, IHtmlTemplateElement, IHtmlElement, IElement, INode, IEventTarget, IMarkupFormattable, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle, IGlobalEventHandlers { private readonly DocumentFragment _content; public IDocumentFragment Content => _content; public HtmlTemplateElement(Document owner, string prefix = null) : base(owner, TagNames.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); CloneElement(htmlTemplateElement, deep); 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 void ToHtml(TextWriter writer, IMarkupFormatter formatter) { writer.Write(formatter.OpenTag(this, false)); _content.ChildNodes.ToHtml(writer, formatter); writer.Write(formatter.CloseTag(this, false)); } internal override void NodeIsAdopted(Document oldDocument) { _content.Owner = oldDocument; } } }