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
$namespace, string $qualifiedName, string $value = ""): DOMElement|false$target, string $data = ""): DOMProcessingInstruction|falsebool
$exclusive = false,bool
$withComments = false,?array
$xpath = null,?array
$nsPrefixes = null): string|false
Properties
- actualEncoding
Deprecated as of PHP 8.4.0. Actual encoding of the document, is a readonly equivalent to encoding.
- childElementCount
The number of child elements.
- config
Deprecated as of PHP 8.4.0. 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
nullif 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 tofalsehas the same effect as passingLIBXML_NOBLANKSasoptionto 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
trueto 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.CautionEnabling entity substitution may facilitate XML External Entity (XXE) attacks.
- validateOnParse
Loads and validates against the DTD. Default to
false.CautionEnabling 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
nullwhen 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
falsewhen 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.4.0 | actualEncoding and config are formally deprecated now. |
| 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.
See Also
Table of Contents
- DOMDocument::adoptNode — Transfer a node from another document
- DOMDocument::append — Appends nodes after the last child node
- DOMDocument::__construct — Creates a new DOMDocument object
- DOMDocument::createAttribute — Create new attribute
- DOMDocument::createAttributeNS — Create new attribute node with an associated namespace
- DOMDocument::createCDATASection — Create new cdata node
- DOMDocument::createComment — Create new comment node
- DOMDocument::createDocumentFragment — Create new document fragment
- DOMDocument::createElement — Create new element node
- DOMDocument::createElementNS — Create new element node with an associated namespace
- DOMDocument::createEntityReference — Create new entity reference node
- DOMDocument::createProcessingInstruction — Creates new PI node
- DOMDocument::createTextNode — Create new text node
- DOMDocument::getElementById — Searches for an element with a certain id
- DOMDocument::getElementsByTagName — Searches for all elements with given local tag name
- DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace
- DOMDocument::importNode — Import node into current document
- DOMDocument::load — Load XML from a file
- DOMDocument::loadHTML — Load HTML from a string
- DOMDocument::loadHTMLFile — Load HTML from a file
- DOMDocument::loadXML — Load XML from a string
- DOMDocument::normalizeDocument — Normalizes the document
- DOMDocument::prepend — Prepends nodes before the first child node
- DOMDocument::registerNodeClass — Register extended class used to create base node type
- DOMDocument::relaxNGValidate — Performs relaxNG validation on the document
- DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document
- DOMDocument::replaceChildren — Replace children in document
- DOMDocument::save — Dumps the internal XML tree back into a file
- DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting
- DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting
- DOMDocument::saveXML — Dumps the internal XML tree back into a string
- DOMDocument::schemaValidate — Validates a document based on a schema. Only XML Schema 1.0 is supported.
- DOMDocument::schemaValidateSource — Validates a document based on a schema
- DOMDocument::validate — Validates the document based on its DTD
- DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object