La clase DOMDocument

(PHP 5, PHP 7, PHP 8)

Introducción

Representa un documento HTML o XML completo; será la raíz del árbol del documento.

Sinopsis de la Clase

class DOMDocument extends DOMNode implements DOMParentNode {
/* Constantaes heredadas constants */
/* Propiedades */
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;
/* Propiedades heredadas */
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 __construct(string $version = "1.0", string $encoding = "")
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
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): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $filename, int $options = 0): bool
public loadXML(string $source, int $options = 0): bool
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $baseClass, ?string $extendedClass): true
public relaxNGValidate(string $filename): bool
public replaceChildren(DOMNode|string ...$nodes): void
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
/* Métodos heredados */
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::isDefaultNamespace(string $namespaceURI): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
}

Propiedades

actualEncoding

Obsoleto a partir de PHP 8.4.0. La codificación actual del documento, en lectura única, equivalente a encoding.

childElementCount

El número de elementos hijos.

config

Obsoleto a partir de PHP 8.4.0. Configuración utilizada cuando DOMDocument::normalizeDocument() es llamado.

doctype

La Declaración de Tipo de Documento asociada con este documento.

documentElement

El objeto DOMElement que es el primer elemento del documento. Si no se encuentra, esto se evalúa a null.

documentURI

La localización del documento, o null si indefinido.

encoding

La codificación del documento, tal como se especifica en la declaración XML. Este atributo no está presente en la especificación DOM Nivel 3 final, pero representa la única manera de manipular la codificación del documento XML en esta implementación.

firstElementChild

Primer elemento hijo o null.

formatOutput

Formatea elegantemente el resultado con una indentación y espacios adicionales. Este parámetro no tiene ningún efecto si el documento ha sido cargado con la activación de preserveWhiteSpace.

implementation

El objeto DOMImplementation que gestiona este documento.

lastElementChild

Último elemento hijo o null.

preserveWhiteSpace

No eliminar los espacios redundantes. Por omisión, true. Definir este parámetro a false tiene el mismo efecto de definir a LIBXML_NOBLANKS el parámetro option del método DOMDocument::load().

recover

Propietario. Activa el modo "recovery", es decir, intenta analizar un documento mal formado. Este atributo no forma parte de la especificación DOM y es específico de libxml.

resolveExternals

Defínase a true para cargar entidades externas desde la declaración doctype. Es útil para incluir entidades en sus documentos XML.

standalone

Obsoleto. Si el documento es "standalone" o no, tal como se especifica en la declaración XML, correspondiente a xmlStandalone.

strictErrorChecking

Lanza una DOMException en caso de error. Por omisión, true.

substituteEntities

Propietario. Si se deben o no sustituir las entidades. Este atributo no forma parte de la especificación DOM y es específico de libxml. Por omisión, false

Precaución

Activar la sustitución de entidades puede facilitar los ataques XML External Entity (XXE).

validateOnParse

Carga y valida la DTD. Por omisión, false.

Precaución

Activar la validación del DTD puede facilitar los ataques XML External Entity (XXE).

version

Obsoleto. Versión del XML, corresponde a xmlVersion.

xmlEncoding

Un atributo especificando la codificación del documento. Es null cuando la codificación no está especificada, o cuando es desconocida, como es el caso cuando el documento ha sido creado en memoria.

xmlStandalone

Un atributo especificando si el documento es "standalone". Es false cuando no está especificado. Un documento standalone es un documento donde no hay declaraciones de marcado externas. Un ejemplo de tal declaración de marcado es cuando la DTD declara un atributo con un valor por omisión.

xmlVersion

Un atributo especificando el número de versión del documento. Si no hay declaración y si el documento soporta la funcionalidad "XML", el valor será "1.0".

Historial de cambios

Versión Descripción
8.4.0 actualEncoding y config son ahora formalmente deprecados.
8.0.0 DOMDocument implementa ahora DOMParentNode.
8.0.0 El método no implementado DOMDocument::renameNode() ha sido retirado.

Notas

Nota:

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

Nota:

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

Tabla de contenidos