The DOMDocument class

(PHP 5, PHP 7, PHP 8)

Introduction

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

Class synopsis

classDOMDocumentextendsDOMNodeimplementsDOMParentNode {
publicreadonly?DOMDocumentType$doctype;
publicreadonly?string$actualEncoding;
publicreadonly?string$xmlEncoding;
publicreadonlymixed$config;
publicreadonlyint$childElementCount;
publicreadonlystring$nodeName;
publicreadonlyint$nodeType;
publicreadonly?DOMNode$parentNode;
publicreadonly?DOMElement$parentElement;
publicreadonlyDOMNodeList$childNodes;
publicreadonly?DOMNode$firstChild;
publicreadonly?DOMNode$lastChild;
publicreadonly?DOMNode$previousSibling;
publicreadonly?DOMNode$nextSibling;
publicreadonlybool$isConnected;
publicreadonly?string$namespaceURI;
publicreadonly?string$localName;
publicreadonly?string$baseURI;
public__construct(string$version = "1.0", string$encoding = "")
publicappend(DOMNode|string...$nodes): void
publiccreateAttributeNS(?string$namespace, string$qualifiedName): DOMAttr|false
publiccreateElement(string$localName, string$value = ""): DOMElement|false
publiccreateElementNS(?string$namespace, string$qualifiedName, string$value = ""): DOMElement|false
publicgetElementsByTagNameNS(?string$namespace, string$localName): DOMNodeList
publicimportNode(DOMNode$node, bool$deep = false): DOMNode|false
publicload(string$filename, int$options = 0): bool
publicloadHTML(string$source, int$options = 0): bool
publicloadHTMLFile(string$filename, int$options = 0): bool
publicloadXML(string$source, int$options = 0): bool
publicprepend(DOMNode|string...$nodes): void
publicregisterNodeClass(string$baseClass, ?string$extendedClass): bool
publicrelaxNGValidate(string$filename): bool
publicsave(string$filename, int$options = 0): int|false
publicsaveHTMLFile(string$filename): int|false
publicsaveXML(?DOMNode$node = null, int$options = 0): string|false
publicschemaValidate(string$filename, int$flags = 0): bool
publicschemaValidateSource(string$source, int$flags = 0): bool
publicvalidate(): bool
publicxinclude(int$options = 0): int|false
publicDOMNode::C14N(
    bool$exclusive = false,
    bool$withComments = false,
    ?array$xpath = null,
    ?array$nsPrefixes = null
): string|false
publicDOMNode::C14NFile(
    string$uri,
    bool$exclusive = false,
    bool$withComments = false,
    ?array$xpath = null,
    ?array$nsPrefixes = null
): int|false
publicDOMNode::isSameNode(DOMNode$otherNode): bool
publicDOMNode::isSupported(string$feature, string$version): bool
}

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

VersionDescription
8.0.0DOMDocument 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

To Top