AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="1.0.2-alpha-249" />

.NET API 886,272 bytes

 HtmlTableElement

Represents the HTML table element.
using AngleSharp.Dom; using AngleSharp.Dom.Events; using AngleSharp.Text; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; namespace AngleSharp.Html.Dom { [System.Runtime.CompilerServices.NullableContext(2)] [System.Runtime.CompilerServices.Nullable(0)] internal sealed class HtmlTableElement : HtmlElement, IHtmlTableElement, IHtmlElement, IElement, INode, IEventTarget, IMarkupFormattable, IParentNode, IChildNode, INonDocumentTypeChildNode, IGlobalEventHandlers { [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] private HtmlCollection<IHtmlTableSectionElement> _bodies; [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] private HtmlCollection<IHtmlTableRowElement> _rows; public IHtmlTableCaptionElement Caption { get { return base.ChildNodes.OfType<IHtmlTableCaptionElement>().FirstOrDefault((IHtmlTableCaptionElement m) => m.LocalName.Is(TagNames.Caption)); } set { DeleteCaption(); if (value != null) InsertChild(0, value); } } public IHtmlTableSectionElement Head { get { return base.ChildNodes.OfType<IHtmlTableSectionElement>().FirstOrDefault((IHtmlTableSectionElement m) => m.LocalName.Is(TagNames.Thead)); } set { DeleteHead(); if (value != null) AppendChild(value); } } [System.Runtime.CompilerServices.Nullable(1)] public IHtmlCollection<IHtmlTableSectionElement> Bodies { [System.Runtime.CompilerServices.NullableContext(1)] get { return _bodies ?? (_bodies = new HtmlCollection<IHtmlTableSectionElement>(this, false, (IHtmlTableSectionElement m) => m.LocalName.Is(TagNames.Tbody))); } } public IHtmlTableSectionElement Foot { get { return base.ChildNodes.OfType<IHtmlTableSectionElement>().FirstOrDefault((IHtmlTableSectionElement m) => m.LocalName.Is(TagNames.Tfoot)); } set { DeleteFoot(); if (value != null) AppendChild(value); } } [System.Runtime.CompilerServices.Nullable(1)] public IEnumerable<IHtmlTableRowElement> AllRows { [System.Runtime.CompilerServices.NullableContext(1)] get { IEnumerable<IHtmlTableSectionElement> enumerable = from m in base.ChildNodes.OfType<IHtmlTableSectionElement>() where m.LocalName.Is(TagNames.Thead) select m; IEnumerable<IHtmlTableSectionElement> foots = from m in base.ChildNodes.OfType<IHtmlTableSectionElement>() where m.LocalName.Is(TagNames.Tfoot) select m; foreach (IHtmlTableSectionElement item in enumerable) { foreach (IHtmlTableRowElement row in item.Rows) { yield return row; } } List<Node>.Enumerator enumerator3 = base.ChildNodes.GetEnumerator(); try { while (enumerator3.MoveNext()) { Node current3 = enumerator3.Current; IHtmlTableSectionElement htmlTableSectionElement = current3 as IHtmlTableSectionElement; if (htmlTableSectionElement != null) { if (htmlTableSectionElement.LocalName.Is(TagNames.Tbody)) { foreach (IHtmlTableRowElement row2 in htmlTableSectionElement.Rows) { yield return row2; } } } else { IHtmlTableRowElement htmlTableRowElement = current3 as IHtmlTableRowElement; if (htmlTableRowElement != null) yield return htmlTableRowElement; } } } finally { ((IDisposable)enumerator3).Dispose(); } enumerator3 = default(List<Node>.Enumerator); foreach (IHtmlTableSectionElement item2 in foots) { foreach (IHtmlTableRowElement row3 in item2.Rows) { yield return row3; } } } } [System.Runtime.CompilerServices.Nullable(1)] public IHtmlCollection<IHtmlTableRowElement> Rows { [System.Runtime.CompilerServices.NullableContext(1)] get { return _rows ?? (_rows = new HtmlCollection<IHtmlTableRowElement>(AllRows)); } } public HorizontalAlignment Align { get { return this.GetOwnAttribute(AttributeNames.Align).ToEnum(HorizontalAlignment.Left); } set { this.SetOwnAttribute(AttributeNames.Align, value.ToString(), false); } } public string BgColor { get { return this.GetOwnAttribute(AttributeNames.BgColor); } set { this.SetOwnAttribute(AttributeNames.BgColor, value, false); } } public uint Border { get { return this.GetOwnAttribute(AttributeNames.Border).ToInteger(0); } set { this.SetOwnAttribute(AttributeNames.Border, value.ToString(), false); } } public int CellPadding { get { return this.GetOwnAttribute(AttributeNames.CellPadding).ToInteger(0); } set { this.SetOwnAttribute(AttributeNames.CellPadding, value.ToString(), false); } } public int CellSpacing { get { return this.GetOwnAttribute(AttributeNames.CellSpacing).ToInteger(0); } set { this.SetOwnAttribute(AttributeNames.CellSpacing, value.ToString(), false); } } public TableFrames Frame { get { return this.GetOwnAttribute(AttributeNames.Frame).ToEnum(TableFrames.Void); } set { this.SetOwnAttribute(AttributeNames.Frame, value.ToString(), false); } } public TableRules Rules { get { return this.GetOwnAttribute(AttributeNames.Rules).ToEnum(TableRules.All); } set { this.SetOwnAttribute(AttributeNames.Rules, value.ToString(), false); } } public string Summary { get { return this.GetOwnAttribute(AttributeNames.Summary); } set { this.SetOwnAttribute(AttributeNames.Summary, value, false); } } public string Width { get { return this.GetOwnAttribute(AttributeNames.Width); } set { this.SetOwnAttribute(AttributeNames.Width, value, false); } } [System.Runtime.CompilerServices.NullableContext(1)] public HtmlTableElement(Document owner, [System.Runtime.CompilerServices.Nullable(2)] string prefix = null) : base(owner, TagNames.Table, prefix, NodeFlags.Special | NodeFlags.Scoped | NodeFlags.HtmlTableSectionScoped | NodeFlags.HtmlTableScoped) { } [System.Runtime.CompilerServices.NullableContext(1)] public IHtmlTableRowElement InsertRowAt(int index = -1) { IHtmlCollection<IHtmlTableRowElement> rows = Rows; IHtmlTableRowElement htmlTableRowElement = (IHtmlTableRowElement)base.Owner.CreateElement(TagNames.Tr); if (index >= 0 && index < rows.Length) { IHtmlTableRowElement htmlTableRowElement2 = rows[index]; htmlTableRowElement2.ParentElement.InsertBefore(htmlTableRowElement, htmlTableRowElement2); } else if (rows.Length == 0) { IHtmlCollection<IHtmlTableSectionElement> bodies = Bodies; if (bodies.Length == 0) { IElement child = base.Owner.CreateElement(TagNames.Tbody); AppendChild(child); } bodies[bodies.Length - 1].AppendChild(htmlTableRowElement); } else { rows[rows.Length - 1].ParentElement.AppendChild(htmlTableRowElement); } return htmlTableRowElement; } public void RemoveRowAt(int index) { IHtmlCollection<IHtmlTableRowElement> rows = Rows; if (index >= 0 && index < rows.Length) rows[index].Remove(); } [System.Runtime.CompilerServices.NullableContext(1)] public IHtmlTableSectionElement CreateHead() { IHtmlTableSectionElement htmlTableSectionElement = Head; if (htmlTableSectionElement == null) { htmlTableSectionElement = (IHtmlTableSectionElement)base.Owner.CreateElement(TagNames.Thead); AppendChild(htmlTableSectionElement); } return htmlTableSectionElement; } [System.Runtime.CompilerServices.NullableContext(1)] public IHtmlTableSectionElement CreateBody() { IHtmlTableSectionElement htmlTableSectionElement = Bodies.LastOrDefault(); IHtmlTableSectionElement htmlTableSectionElement2 = (IHtmlTableSectionElement)base.Owner.CreateElement(TagNames.Tbody); int length = base.ChildNodes.Length; int num = (htmlTableSectionElement != null) ? (htmlTableSectionElement.Index() + 1) : length; if (num == length) AppendChild(htmlTableSectionElement2); else InsertChild(num, htmlTableSectionElement2); return htmlTableSectionElement2; } public void DeleteHead() { Head?.Remove(); } [System.Runtime.CompilerServices.NullableContext(1)] public IHtmlTableSectionElement CreateFoot() { IHtmlTableSectionElement htmlTableSectionElement = Foot; if (htmlTableSectionElement == null) { htmlTableSectionElement = (IHtmlTableSectionElement)base.Owner.CreateElement(TagNames.Tfoot); AppendChild(htmlTableSectionElement); } return htmlTableSectionElement; } public void DeleteFoot() { Foot?.Remove(); } [System.Runtime.CompilerServices.NullableContext(1)] public IHtmlTableCaptionElement CreateCaption() { IHtmlTableCaptionElement htmlTableCaptionElement = Caption; if (htmlTableCaptionElement == null) { htmlTableCaptionElement = (IHtmlTableCaptionElement)base.Owner.CreateElement(TagNames.Caption); InsertChild(0, htmlTableCaptionElement); } return htmlTableCaptionElement; } public void DeleteCaption() { Caption?.Remove(); } } }