Package org.htmlunit.html

# Class HtmlTable

java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlTable

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Element`, `Node`

public class HtmlTable extends HtmlElement
Wrapper for the HTML element "table".

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.htmlunit.html.HtmlElement

  `HtmlElement.DisplayStyle`

  ## Nested classes/interfaces inherited from class org.htmlunit.html.DomElement

  `DomElement.ChildElementsIterator`

  ## Nested classes/interfaces inherited from class org.htmlunit.html.DomNode

  `DomNode.ChildIterator, DomNode.DescendantDomElementsIterator, DomNode.DescendantDomNodesIterator, DomNode.DescendantElementsIterator<T extends DomNode>, DomNode.DescendantHtmlElementsIterator`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `TAG_NAME`
  The HTML tag represented by this element.

  ### Fields inherited from class org.htmlunit.html.HtmlElement

  `ATTRIBUTE_CHECKED, ATTRIBUTE_HIDDEN, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDS`

  ### Fields inherited from class org.htmlunit.html.DomElement

  `ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTE`

  ### Fields inherited from class org.htmlunit.html.DomNode

  `PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED`

  ### Fields inherited from interface org.w3c.dom.Node

  `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final String`
  `getAlignAttribute()`
  Returns the value of the attribute `align`.
  `final String`
  `getBgcolorAttribute()`
  Returns the value of the attribute `bgcolor`.
  `List<HtmlTableBody>`
  `getBodies()`
  Returns a list of tables bodies defined in this table.
  `final String`
  `getBorderAttribute()`
  Returns the value of the attribute `border`.
  `String`
  `getCaptionText()`
  Returns the table caption text or an empty string if a caption wasn't specified.
  `final HtmlTableCell`
  `getCellAt(int rowIndex, int columnIndex)`
  Returns the first cell that matches the specified row and column, searching left to right, top to bottom.
  `final String`
  `getCellPaddingAttribute()`
  Returns the value of the attribute `cellpadding`.
  `final String`
  `getCellSpacingAttribute()`
  Returns the value of the attribute `cellspacing`.
  `HtmlElement.DisplayStyle`
  `getDefaultStyleDisplay()`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Returns the default display style.
  `HtmlTableFooter`
  `getFooter()`
  Returns the table footer or null if a footer wasn't specified.
  `final String`
  `getFrameAttribute()`
  Returns the value of the attribute `frame`.
  `HtmlTableHeader`
  `getHeader()`
  Returns the table header or null if a header wasn't specified.
  `HtmlTableRow`
  `getRow(int index)`
  `final HtmlTableRow`
  `getRowById(String id)`
  Finds and return the row with the specified id.
  `final int`
  `getRowCount()`
  Computes the number of rows in this table.
  `List<HtmlTableRow>`
  `getRows()`
  `final String`
  `getRulesAttribute()`
  Returns the value of the attribute `rules`.
  `final String`
  `getSummaryAttribute()`
  Returns the value of the attribute `summary`.
  `final String`
  `getWidthAttribute()`
  Returns the value of the attribute `width`.
  `protected boolean`
  `isEmptyXmlTagExpanded()`
  Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")

  ### Methods inherited from class org.htmlunit.html.HtmlElement

  `acceptChar, addHtmlAttributeChangeListener, appendChildIfNoneExists, checkChildHierarchy, cloneNode, detach, doType, doType, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, getCanonicalXPath, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getSrcAttributeNormalized, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, handles, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isDisplayed, isHidden, isOptional, isRequired, isRequiredSupported, isShiftPressed, isSubmittableByEnter, isValid, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setAttributeNS, setHidden, setHidden, setOwningForm, setRequired, type, type, type, type, typeDone`

  ### Methods inherited from class org.htmlunit.html.DomElement

  `blur, click, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, doClickStateUpdate, fireEvent, fireEvent, focus, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getSchemaTypeInfo, getStaticElementsByTagName, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isMouseOver, isStateUpdateFirst, matches, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, printOpeningTagContentAsXml, printXml, propagateClickStateUpdateToParent, removeAttributeNode, removeAttributeNS, removeFocus, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, toString, writeStyleToElement`

  ### Methods inherited from class org.htmlunit.html.DomNamespaceNode

  `getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, setPrefix`

  ### Methods inherited from class org.htmlunit.html.DomNode

  `addCharacterDataChangeListener, addDomChangeListener, appendChild, asNormalizedText, asXml, basicRemove, closest, compareDocumentPosition, fireCharacterDataChanged, fireNodeAdded, fireNodeDeleted, getAncestors, getBaseURI, getByXPath, getByXPath, getChildNodes, getChildren, getDescendants, getDomElementDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getHtmlPageOrNull, getIndex, getLastChild, getNextElementSibling, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousElementSibling, getPreviousSibling, getReadyState, getScriptableObject, getSelectorList, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, getVisibleText, hasChildNodes, hasFeature, insertBefore, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, onAllChildrenAddedToPage, parseHtmlSnippet, printChildrenAsXml, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, setTextContent, setUserData`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface org.w3c.dom.Node

  `appendChild, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setPrefix, setTextContent, setUserData`

- ## Field Details

  - ### TAG_NAME

    public static final String TAG_NAME
    The HTML tag represented by this element.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getCellAt

    public final HtmlTableCell getCellAt(int rowIndex, int columnIndex)
    Returns the first cell that matches the specified row and column, searching left to right, top to bottom.

    This method returns different values than getRow(rowIndex).getCell(cellIndex) because this takes cellspan and rowspan into account.
    This means, a cell with colspan='2' consumes two columns; a cell with rowspan='3' consumes three rows. The index is based on the 'background' model of the table; if you have a row like
    <td>cell1</td> <td colspan='2'>cell2</td> then this row is treated as a row with three cells.

    `getCellAt(rowIndex, 0).asText() returns "cell1";
    getCellAt(rowIndex, 1).asText() returns "cell2";
    getCellAt(rowIndex, 2).asText() returns "cell2"; and
    getCellAt(rowIndex, 3).asText() returns null;`

    Parameters:
      `rowIndex` - the row index
      `columnIndex` - the column index
    Returns:
      the HtmlTableCell at that location or null if there are no cells at that location

  - ### getRows

    public List<HtmlTableRow> getRows()
    Returns:
      an immutable list containing all the HtmlTableRow objects
    See Also:
      - `getRowIterator()`

  - ### getRow

    public HtmlTableRow getRow(int index) throws IndexOutOfBoundsException
    Parameters:
      `index` - the 0-based index of the row
    Returns:
      the HtmlTableRow at the given index
    Throws:
      `IndexOutOfBoundsException` - if there is no row at the given index
    See Also:
      - `getRowIterator()`

  - ### getRowCount

    public final int getRowCount()
    Computes the number of rows in this table. Note that the count is computed dynamically by iterating over all rows.
    Returns:
      the number of rows in this table

  - ### getRowById

    public final HtmlTableRow getRowById(String id) throws ElementNotFoundException
    Finds and return the row with the specified id.
    Parameters:
      `id` - the id of the row
    Returns:
      the row with the specified id
    Throws:
      `ElementNotFoundException` - If the row cannot be found.

  - ### getCaptionText

    public String getCaptionText()
    Returns the table caption text or an empty string if a caption wasn't specified.
    Returns:
      the caption text

  - ### getHeader

    public HtmlTableHeader getHeader()
    Returns the table header or null if a header wasn't specified.
    Returns:
      the table header

  - ### getFooter

    public HtmlTableFooter getFooter()
    Returns the table footer or null if a footer wasn't specified.
    Returns:
      the table footer

  - ### getBodies

    public List<HtmlTableBody> getBodies()
    Returns a list of tables bodies defined in this table. If no bodies were defined then an empty list will be returned.
    Returns:
      a list of `HtmlTableBody` objects

  - ### getSummaryAttribute

    public final String getSummaryAttribute()
    Returns the value of the attribute `summary`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `summary` or an empty string if that attribute isn't defined.

  - ### getWidthAttribute

    public final String getWidthAttribute()
    Returns the value of the attribute `width`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `width` or an empty string if that attribute isn't defined.

  - ### getBorderAttribute

    public final String getBorderAttribute()
    Returns the value of the attribute `border`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `border` or an empty string if that attribute isn't defined.

  - ### getFrameAttribute

    public final String getFrameAttribute()
    Returns the value of the attribute `frame`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `frame` or an empty string if that attribute isn't defined.

  - ### getRulesAttribute

    public final String getRulesAttribute()
    Returns the value of the attribute `rules`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `rules` or an empty string if that attribute isn't defined.

  - ### getCellSpacingAttribute

    public final String getCellSpacingAttribute()
    Returns the value of the attribute `cellspacing`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `cellspacing` or an empty string if that attribute isn't defined.

  - ### getCellPaddingAttribute

    public final String getCellPaddingAttribute()
    Returns the value of the attribute `cellpadding`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `cellpadding` or an empty string if that attribute isn't defined.

  - ### getAlignAttribute

    public final String getAlignAttribute()
    Returns the value of the attribute `align`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `align` or an empty string if that attribute isn't defined.

  - ### getBgcolorAttribute

    public final String getBgcolorAttribute()
    Returns the value of the attribute `bgcolor`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `bgcolor` or an empty string if that attribute isn't defined.

  - ### isEmptyXmlTagExpanded

    protected boolean isEmptyXmlTagExpanded()
    Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")
    Overrides:
      `isEmptyXmlTagExpanded` in class `DomElement`
    Returns:
      `true` as browsers ignore self closing `table` tags.

  - ### getDefaultStyleDisplay

    public HtmlElement.DisplayStyle getDefaultStyleDisplay()
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    Returns the default display style.
    Overrides:
      `getDefaultStyleDisplay` in class `HtmlElement`
    Returns:
      the default display style