The DOMDocument class

Introduction

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

Class synopsis

DOMDocument
extends DOMNode
implements DOMParentNode
/* Properties */
public readonly DOMDocumentTypenull $doctype;
public readonly DOMImplementation $implementation;
public readonly DOMElementnull $documentElement;
public readonly stringnull $actualEncoding;
public stringnull $encoding;
public readonly stringnull $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public stringnull $version;
public stringnull $xmlVersion;
public bool $strictErrorChecking;
public stringnull $documentURI;
public readonly mixed $config;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly DOMElementnull $firstElementChild;
public readonly DOMElementnull $lastElementChild;
public readonly int $childElementCount;
/* Inherited properties */
public readonly string $nodeName;
public stringnull $nodeValue;
public readonly int $nodeType;
public readonly DOMNodenull $parentNode;
public readonly DOMElementnull $parentElement;
public readonly DOMNodeList $childNodes;
public readonly DOMNodenull $firstChild;
public readonly DOMNodenull $lastChild;
public readonly DOMNodenull $previousSibling;
public readonly DOMNodenull $nextSibling;
public readonly DOMNamedNodeMapnull $attributes;
public readonly bool $isConnected;
public readonly DOMDocumentnull $ownerDocument;
public readonly stringnull $namespaceURI;
public string $prefix;
public readonly stringnull $localName;
public readonly stringnull $baseURI;
public string $textContent;
/* Methods */
public DOMDocument::__construct(string $version = "1.0", string $encoding = "")
public DOMNodefalse DOMDocument::adoptNode(DOMNode $node)
public void DOMDocument::append(DOMNodestring ...$nodes)
public DOMAttrfalse DOMDocument::createAttribute(string $localName)
public DOMAttrfalse DOMDocument::createAttributeNS(stringnull $namespace, string $qualifiedName)
public DOMCdataSectionfalse DOMDocument::createCDATASection(string $data)
public DOMComment DOMDocument::createComment(string $data)
public DOMDocumentFragment DOMDocument::createDocumentFragment()
public DOMElementfalse DOMDocument::createElement(string $localName, string $value = "")
public DOMElementfalse DOMDocument::createElementNS(stringnull $namespace, string $qualifiedName, string $value = "")
public DOMEntityReferencefalse DOMDocument::createEntityReference(string $name)
public DOMProcessingInstructionfalse DOMDocument::createProcessingInstruction(string $target, string $data = "")
public DOMText DOMDocument::createTextNode(string $data)
public DOMElementnull DOMDocument::getElementById(string $elementId)
public DOMNodeList DOMDocument::getElementsByTagName(string $qualifiedName)
public DOMNodeList DOMDocument::getElementsByTagNameNS(stringnull $namespace, string $localName)
public DOMNodefalse DOMDocument::importNode(DOMNode $node, bool $deep = false)
public bool DOMDocument::load(string $filename, int $options = 0)
public bool DOMDocument::loadHTML(string $source, int $options = 0)
public bool DOMDocument::loadHTMLFile(string $filename, int $options = 0)
public bool DOMDocument::loadXML(string $source, int $options = 0)
public void DOMDocument::normalizeDocument()
public void DOMDocument::prepend(DOMNodestring ...$nodes)
public true DOMDocument::registerNodeClass(string $baseClass, stringnull $extendedClass)
public bool DOMDocument::relaxNGValidate(string $filename)
public bool DOMDocument::relaxNGValidateSource(string $source)
public void DOMDocument::replaceChildren(DOMNodestring ...$nodes)
public intfalse DOMDocument::save(string $filename, int $options = 0)
public stringfalse DOMDocument::saveHTML(DOMNodenull $node = null)
public intfalse DOMDocument::saveHTMLFile(string $filename)
public stringfalse DOMDocument::saveXML(DOMNodenull $node = null, int $options = 0)
public bool DOMDocument::schemaValidate(string $filename, int $flags = 0)
public bool DOMDocument::schemaValidateSource(string $source, int $flags = 0)
public bool DOMDocument::validate()
public intfalse DOMDocument::xinclude(int $options = 0)
/* Inherited methods */
public DOMNodefalse appendChild(DOMNode $node)
public stringfalse C14N(
    bool $exclusive = false,
    bool $withComments = false,
    arraynull $xpath = null,
    arraynull $nsPrefixes = null
)
public intfalse C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    arraynull $xpath = null,
    arraynull $nsPrefixes = null
)
public DOMNodefalse cloneNode(bool $deep = false)
public int compareDocumentPosition(DOMNode $other)
public bool contains(DOMNodeDOMNameSpaceNodenull $other)
public int getLineNo()
public stringnull getNodePath()
public DOMNode getRootNode(arraynull $options = null)
public bool hasAttributes()
public bool hasChildNodes()
public DOMNodefalse insertBefore(DOMNode $node, DOMNodenull $child = null)
public bool isDefaultNamespace(string $namespace)
public bool isEqualNode(DOMNodenull $otherNode)
public bool isSameNode(DOMNode $otherNode)
public bool isSupported(string $feature, string $version)
public stringnull lookupNamespaceURI(stringnull $prefix)
public stringnull lookupPrefix(string $namespace)
public void normalize()
public DOMNodefalse removeChild(DOMNode $child)
public DOMNodefalse replaceChild(DOMNode $node, DOMNode $child)

Properties

actualEncoding

Deprecated. Actual encoding of the document, is a readonly equivalent to encoding.

childElementCount

The number of child elements.

config

Deprecated. Configuration used when DOMDocument::normalizeDocument is invoked.

doctype

The Document Type Declaration associated with this document.

documentElement

The DOMElement object that is the first document element. If not found, this evaluates to null.

documentURI

The location of the document or null if undefined.

encoding

Encoding of the document, as specified by the XML declaration. This attribute is not present in the final DOM Level 3 specification, but is the only way of manipulating XML document encoding in this implementation.

firstElementChild

First child element or null.

formatOutput

Nicely formats output with indentation and extra space. This has no effect if the document was loaded with preserveWhitespace enabled.

implementation

The DOMImplementation object that handles this document.

lastElementChild

Last child element or null.

preserveWhiteSpace

Do not remove redundant white space. Default to true. Setting this to false has the same effect as passing LIBXML_NOBLANKS as option to DOMDocument::load etc.

recover

Proprietary. Enables recovery mode, i.e. trying to parse non-well formed documents. This attribute is not part of the DOM specification and is specific to libxml.

resolveExternals

Set it to true to load external entities from a doctype declaration. This is useful for including character entities in your XML document.

standalone

Deprecated. Whether or not the document is standalone, as specified by the XML declaration, corresponds to xmlStandalone.

strictErrorChecking

Throws DOMException on errors. Default to true.

substituteEntities

Proprietary. Whether or not to substitute entities. This attribute is not part of the DOM specification and is specific to libxml. Default to false.

Caution

Enabling entity substitution may facilitate XML External Entity (XXE) attacks.

validateOnParse

Loads and validates against the DTD. Default to false.

Caution

Enabling validating the DTD may facilitate XML External Entity (XXE) attacks.

version

Deprecated. Version of XML, corresponds to xmlVersion.

xmlEncoding

An attribute specifying, as part of the XML declaration, the encoding of this document. This is null when unspecified or when it is not known, such as when the Document was created in memory.

xmlStandalone

An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when unspecified. A standalone document is one where there are no external markup declarations. An example of such a markup declaration is when the DTD declares an attribute with a default value.

xmlVersion

An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is "1.0".

Changelog

Version Description
8.0.0 DOMDocument implements DOMParentNode now.
8.0.0 The unimplemented method DOMDocument::renameNode has been removed.

Notes

Note:

The DOM extension uses UTF-8 encoding. Use mb_convert_encoding, UConverter::transcode, or iconv to handle other encodings.

Note:

When using json_encode on a DOMDocument object the result will be that of encoding an empty object.

Table of Contents