# The Dom\Document class

(PHP 8 >= 8.4.0)

## Introduction

Represents an entire HTML or XML document; serves as the root of the document tree.

This is the modern, spec-compliant equivalent of DOMDocument. It is the base class for Dom\XMLDocument and Dom\HTMLDocument.

## Class synopsis

abstract class Dom\Document extends Dom\Node implements Dom\ParentNode {
/* Inherited constants */
public const int Dom\Node::DOCUMENT_POSITION_DISCONNECTED = 0x1;
public const int Dom\Node::DOCUMENT_POSITION_PRECEDING = 0x2;
public const int Dom\Node::DOCUMENT_POSITION_FOLLOWING = 0x4;
public const int Dom\Node::DOCUMENT_POSITION_CONTAINS = 0x8;
public const int Dom\Node::DOCUMENT_POSITION_CONTAINED_BY = 0x10;
public const int Dom\Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
/* Properties */
public readonly Dom\Implementation $implementation;
public string $URL;
public string $documentURI;
public string $characterSet;
public string $charset;
public string $inputEncoding;
public readonly ?Dom\DocumentType $doctype;
public readonly ?Dom\Element $documentElement;
public readonly ?Dom\Element $firstElementChild;
public readonly ?Dom\Element $lastElementChild;
public readonly int $childElementCount;
public ?Dom\HTMLElement $body;
public readonly ?Dom\HTMLElement $head;
public string $title;
/* Inherited properties */
public readonly int $nodeType;
public readonly string $nodeName;
public readonly string $baseURI;
public readonly bool $isConnected;
public readonly ?Dom\Document $ownerDocument;
public readonly ?Dom\Node $parentNode;
public readonly ?Dom\Element $parentElement;
public readonly Dom\NodeList $childNodes;
public readonly ?Dom\Node $firstChild;
public readonly ?Dom\Node $lastChild;
public readonly ?Dom\Node $previousSibling;
public readonly ?Dom\Node $nextSibling;
public ?string $nodeValue;
public ?string $textContent;
/* Methods */
/* Not documented yet */
/* Inherited methods */
/* Not documented yet */
}

## Properties

implementation

  The DOMImplementation object that handles this document.

doctype

  The Document Type Declaration associated with this document.

URL
  Equivalent to documentURI.
characterSet
  The encoding of the document used for serialization. Upon parsing a document, this is set to the input encoding of that document.
inputEncoding
  Legacy alias for characterSet.
charset
  Legacy alias for characterSet.
documentURI

  The location of the document or `null` if undefined.

documentElement
  The Dom\Element that is the document element. This evaluates to `null` for document without elements.
firstElementChild

  First child element or `null`.

lastElementChild

  Last child element or `null`.

childElementCount

  The number of child elements.

body
  The first child of the `html` element that is either a `body` tag or a `frameset` tag. These need to be in the HTML namespace. If no element matches, this evaluates to `null`.
head
  The first `head` element that is a child of the `html` element. These need to be in the HTML namespace. If no element matches, this evaluates to `null`.
title
  The title of the document as set by the `title` element for HTML or the SVG `title` element for SVG. If there is no title, this evaluates to the empty string.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open