A classe DOMDocument

(PHP 5, PHP 7, PHP 8)

Introdução

Representa um documento HTML ou XML inteiro; serve como a raiz da árvore do documento.

Resumo da classe

class DOMDocument extends DOMNode implements DOMParentNode {
/* Constantes herdadas */
/* Propriedades */
public readonly ?DOMDocumentType $doctype;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public ?string $version;
public readonly mixed $config;
public bool $recover;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Propriedades herdadas */
public readonly string $nodeName;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
/* Métodos */
public function __construct(string $version = "1.0", string $encoding = "")
public function adoptNode(DOMNode $node): DOMNode|false
public function append(DOMNode|string ...$nodes): void
public function createAttribute(string $localName): DOMAttr|false
public function createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public function createComment(string $data): DOMComment
public function createElement(string $localName, string $value = ""): DOMElement|false
public function createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public function createTextNode(string $data): DOMText
public function getElementById(string $elementId): ?DOMElement
public function getElementsByTagName(string $qualifiedName): DOMNodeList
public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public function importNode(DOMNode $node, bool $deep = false): DOMNode|false
public function load(string $filename, int $options = 0): bool
public function loadHTML(string $source, int $options = 0): bool
public function loadHTMLFile(string $filename, int $options = 0): bool
public function loadXML(string $source, int $options = 0): bool
public function normalizeDocument(): void
public function prepend(DOMNode|string ...$nodes): void
public function registerNodeClass(string $baseClass, ?string $extendedClass): true
public function relaxNGValidate(string $filename): bool
public function relaxNGValidateSource(string $source): bool
public function replaceChildren(DOMNode|string ...$nodes): void
public function save(string $filename, int $options = 0): int|false
public function saveHTML(?DOMNode $node = null): string|false
public function saveHTMLFile(string $filename): int|false
public function saveXML(?DOMNode $node = null, int $options = 0): string|false
public function schemaValidate(string $filename, int $flags = 0): bool
public function schemaValidateSource(string $source, int $flags = 0): bool
public function validate(): bool
public function xinclude(int $options = 0): int|false
/* Métodos herdados */
public function DOMNode::appendChild(DOMNode $node): DOMNode|false
public function DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): string|false
public function DOMNode::C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): int|false
public function DOMNode::cloneNode(bool $deep = false): DOMNode|false
public function DOMNode::getLineNo(): int
public function DOMNode::getNodePath(): ?string
public function DOMNode::getRootNode(?array $options = null): DOMNode
public function DOMNode::hasAttributes(): bool
public function DOMNode::hasChildNodes(): bool
public function DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public function DOMNode::isDefaultNamespace(string $namespace): bool
public function DOMNode::isEqualNode(?DOMNode $otherNode): bool
public function DOMNode::isSameNode(DOMNode $otherNode): bool
public function DOMNode::isSupported(string $feature, string $version): bool
public function DOMNode::lookupNamespaceURI(?string $prefix): ?string
public function DOMNode::lookupPrefix(string $namespace): ?string
public function DOMNode::normalize(): void
public function DOMNode::removeChild(DOMNode $child): DOMNode|false
public function DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
public function DOMNode::__sleep(): array
public function DOMNode::__wakeup(): void
}

Propriedades

actualEncoding

Descontinuado a partir do PHP 8.4.0. Codificação real do documento, é uma equivalente somente-leitura de encoding.

childElementCount

O número de elementos filhos.

config

Descontinuado a partir do PHP 8.4.0. Configuração usada quando DOMDocument::normalizeDocument() é invocada.

doctype

A Declaração de Tipo de Documento associada a este documento.

documentElement

O objeto DOMElement que é o primeiro elemento do documento. Se não encontrado, é avaliado como null.

documentURI

A localização do documento ou null se indefinido.

encoding

Codificação do documento, conforme especificado pela declaração XML. Este atributo não está presente na especificação final do DOM Nível 3, mas é a única maneira de manipular a codificação do documento XML nesta implementação.

firstElementChild

Primeiro elemento filho ou null.

formatOutput

Formata a saída com espaçamento e recuo adicionais. Isso não tem efeito se o documento foi carregado com preserveWhitespace habilitado.

implementation

O objeto DOMImplementation que manipula este documento.

lastElementChild

Último elemento filho ou null.

preserveWhiteSpace

Não remover espaços em branco redundantes. O padrão é true. Definir isso como false tem o mesmo efeito que passar LIBXML_NOBLANKS como option para DOMDocument::load() etc.

recover

Proprietário. Ativa o modo de recuperação, ou seja, tenta analisar documentos mal formados. Este atributo não faz parte da especificação DOM e é específico para o libxml.

resolveExternals

Configure como true para carregar entidades externas de uma declaração de tipo de documento (doctype). Isso é útil para incluir entidades de caracteres em seu documento XML.

standalone

Descontinuado. Se o documento é ou não independente, conforme especificado pela declaração XML, corresponde a xmlStandalone.

strictErrorChecking

Lança DOMException em caso de erro. Padrão é true.

substituteEntities

Proprietário. Informa de entidades devem ou não ser subtituídas. Este atributo não faz parte da especificação DOM e é específico para o libxml. Padrão é false.

Cuidado

A ativação da substituição de entidades pode facilitar ataques de XML External Entity (XXE).

validateOnParse

Carrega e valida em relação ao DTD. Padrão é false.

Cuidado

Ativar a validação do DTD pode facilitar ataques de XML External Entity (XXE).

version

Descontinuado. Versão do XML, corresponde a xmlVersion.

xmlEncoding

Um atributo especificando, como parte da declaração XML, a codificação deste documento. Isso é null quando não especificado ou quando não é conhecido, como quando o Documento foi criado na memória.

xmlStandalone

Um atributo que especifica, como parte da declaração XML, se este documento é independente. Isso é false quando não especificado. Um documento independente é aquele que não possui declarações de marcações externas. Um exemplo de tal declaração de marcação é quando o DTD declara um atributo com um valor padrão.

xmlVersion

Um atributo que especifica, como parte da declaração XML, o número da versão deste documento. Se não houver declaração e se este documento suportar o recurso "XML", o valor é "1.0".

Registro de Alterações

Versão Descrição
8.4.0 actualEncoding e config agora estão formalmente descontinuados.
8.0.0 DOMDocument agora implementa DOMParentNode.
8.0.0 O método não implementado DOMDocument::renameNode() foi removido.

Notas

Nota: A extensão DOM usa codificação UTF-8. Use mb_convert_encoding(), UConverter::transcode() ou iconv() para lidar com outras codificações.

Nota: Ao usar json_encode() em um objeto DOMDocument, o resultado será a codificação de um objeto vazio.

Índice