The DOMDocument class

The DOMDocument class

(PHP 5, PHP 7, PHP 8)


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


class DOMDocument extends DOMNode implements DOMParentNode {
/* 屬性 */
public readonly ?DOMDocumentType $doctype;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public ?string $version;
public ?string $xmlVersion;
public ?string $documentURI;
public readonly mixed $config = null;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* 繼承的屬性 */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* 方法 */
public __construct(string $version = "1.0", string $encoding = "")
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): DOMDocument|bool
public loadHTML(string $source, int $options = 0): DOMDocument|bool
public loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool
public loadXML(string $source, int $options = 0): DOMDocument|bool
public normalizeDocument(): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* 繼承的方法 */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceUri(string $prefix): string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false



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


The number of child elements.


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


The Document Type Declaration associated with this document.


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


The location of the document or null if undefined.


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.


First child element or null.


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


The DOMImplementation object that handles this document.


Last child element or null.


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.


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.


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


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


Throws DOMException on errors. Default to true.


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


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


Loads and validates against the DTD. Default to false.


Deprecated. Version of XML, corresponds to xmlVersion.


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.


An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when unspecified.


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".


版本 說明
8.0.0 DOMDocument implements DOMParentNode now.
8.0.0 The unimplemented method DOMDocument::renameNode() has been removed.



此 DOM 擴充套件採用 UTF-8 編碼。使用 mb_convert_encoding()UConverter::transcode()iconv() 來處理其它編碼。


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



發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *