Document Object Model
Ces classes implémentent une grande partie des API normalisées du DOM version 3, ainsi que quelques fonctions supplémentaires utiles, comme les API de support de protocoles PHP telles que Iterator, ArrayAccess, ou Countable.
D'une manière générale, les API n'ayant de sens que côté client ne sont pas implémentées. Par exemple, la propriété innerText représentant le texte « visuellement rendu » d'un nœud n'est pas implémentée, au contraire de la propriété textContent. De même, de nombreuses propriétés en lecture seule côté client seront aussi accessibles en écriture côté serveur, puisque l'enjeu côté serveur est de manipuler et de préparer un contenu HTML dont le rendu ne sera effectué qu'une fois envoyé au client. Par exemple, la propriété nodeName, normalisée en lecture seule, est modifiable avec Elements.
class DOMException
La classe DOMException est une exception PHP, dont la propriété $code peut prendre les valeurs suivantes : const HIERARCHY_REQUEST_ERR = 3;
const WRONG_DOCUMENT_ERR = 4;
const NOT_FOUND_ERR = 8;
const NOT_SUPPORTED_ERR = 9;
Ces exceptions sont lancées dans les conditions définies par le DOM.
class DOMImplementation
La classe DOMImplementation est uniquement utilisée par le document afin de créer un DocumentType, en utilisant :function createDocumentType(string $qualifiedName, string $publicId, string $systemId): DocumentType
Elements utilise aussi cette classe pour y stocker les classes à utiliser par défaut pour implémenter les objets du DOM, en utilisant une API compatible avec l'extension PHP DOM
class Node
Node (nœud) est une classe abstraite de laquelle de nombreux objets de type DOM API héritent, leur permettant d'être traités de manière similaire et souvent interchangeable. Étant une classe abstraire, il n'existe pas d'objet qui soit directement un Node. Tous les objets implantant les fonctionnalités de Node sont des instances d'une de ses sous-classes, dont les plus notables sont Document, Element et DocumentFragment.
$nodeName
La propriété $nodeName définit le nom du nœud courant. Puisqu'il n'y a pas d'espace de nom en HTML5 en dehors des balises <Math> et <SVG>, ce nœud peut comporter le symbole ":".
Cette propriété est modifiable avec Elements.
$nodeValue
La propriété $nodeValue renvoie ou définit la valeur du nœud courant.
Cette propriété est modifiable avec Elements.
$nodeType
La propriété en lecture seule $nodeType représente le type du noeud.
Cette propriété est modifiable avec Elements.
$parentNode
La propriété en lecture seule $parentNode renvoie le parent du nœud spécifié dans l'arborescence de DOM.
Cette propriété est modifiable avec Elements.
$firstChild
La propriété en lecture seule $firstChild renvoie le premier nœud enfant de l'arbre ou null s'il n'en a pas. Si le noeud est un Document , il renvoie le premier noeud de la liste de ses enfants directs.
Cette propriété est modifiable avec Elements.
$lastChild
La propriété en lecture seule $lastChild renvoie le dernier enfant du noeud. Si son parent est un élément, l'enfant est généralement un noeud élément, texte ou commentaire. Elle renvoie null s'il n'y a aucun enfant.
Cette propriété est modifiable avec Elements.
$previousSibling
La propriété en lecture seule $previousSibling renvoie le nœud (node) précédant immédiatement le nœud courant dans la liste childNodes de son parent, ou null s'il s'agit du premier nœud de la liste.
Cette propriété est modifiable avec Elements.
$nextSibling
La propriété en lecture seule $nextSibling renvoie le nœud (node) suivant immédiatement le nœud spécifié dans la liste des enfants ( childNodes) de son nœud parent, ou null si le nœud spécifié est le dernier dans cette liste.
Cette propriété est modifiable avec Elements.
$ownerDocument
La propriété en lecture seule $ownerDocument renvoie l'objet document de niveau supérieur pour ce nœud.
Cette propriété est modifiable avec Elements.
$innerHTML
La propriété $innerHTML de Element récupère ou définit la syntaxe HTML décrivant les descendants du nœud.
$outerHTML
L'attribut $outerHTML de l'interface DOM Element récupère le fragment HTML sérialisé décrivant l'élément ainsi que ses descendants. Pour obtenir uniquement la représentation HTML du contenu d'un élément ou pour remplacer le contenu d'un élément, utilisez plutôt la propriété innerHTML.
$textContent
La propriété $textContent représente le contenu textuel d'un nœud et de ses descendants. Elle est accessible en lecture et en écriture.
foreach(bool $includeThis, callable $callback)
Itérer sur les nœud enfants (et éventuellement le nœud courant si $includeThis est vrai). L'itération est un parcours en profondeur de l'arbre du DOM, chaque nœud étant présenté à la callback fournie.
Si la callback retourne une valeur non nulle, l'itération s'arrête et foreach() retourne cette valeur.
Cette fonction ne fait pas partie des standards du DOM
insertBefore(?Node $new, ?Node $ref): ?Node
La méthode insertBefore() insère un nœud avant un nœud de référence en tant qu'enfant d'un nœud parent spécifié.
Si le nœud donné existe déjà dans le document, insertBefore() le déplace de sa position actuelle vers la nouvelle position. (C'est-à-dire qu'il sera automatiquement retiré de son parent existant avant d'être ajouté au nouveau parent spécifié).
Cela signifie qu'un nœud ne peut pas se trouver simultanément à deux endroits du document.
replaceChild(?Node $new, Node $old): Node
La méthode replaceChild() remplace un nœud enfant du noeud spécifié par un autre nœud.
removeChild(?Node $oldChild): ?Node
La méthode removeChild() retire un nœud enfant de l'arbre DOM et retourne le nœud retiré.
appendChild(?Node $newChild): ?Node
La méthode appendChild() ajoute un nœud à la fin de la liste des enfants d'un nœud parent spécifié. Si l'enfant donné est une référence à un nœud existant dans le document, appendChild() le déplace de sa position actuelle vers une nouvelle position (il n'est pas nécessaire de supprimer le noeud sur son noeud parent avant de l'ajouter à un autre).
Cela signifie qu'un noeud ne peut pas être à deux points du document simultanément. Donc, si le nœud a déjà un parent, le nœud est d'abord retiré, puis ajouté à la nouvelle position. La méthode cloneNode() peut être utilisé pour réaliser une copie de noeud avant de l'ajouter à son nouveau parent. Notez que les copies faites avec cloneNode() ne seront pas automatiquement synchronisées.
Si l'enfant donné est un DocumentFragment, le contenu entier du DocumentFragment est déplacé dans la liste d'enfants du noeud parent spécifié.
hasChildNodes(): bool
La méthode hasChildNodes() renvoie un Booléen indiquant si le noeud actuel possède des nœuds enfants ou non.
cloneNode(bool $deep): Node
La méthode cloneNode() renvoie une copie du nœud sur lequel elle a été appelée.
hasAttributes(): bool
La méthode hasAttributes() renvoie une valeur booléenne indiquant si le nœud courant a au moins un attribut ou non.
isSameNode(Node $node): bool
La méthode isSameNode() teste si deux noeuds sont identiques, c'est-à-dire, s'ils font référence au même objet. __toString()
Sérialisation texte générique d'un noeud. Cette fonction renvoie la propriété $outerHTML
Cette fonction ne fait pas partie des standards du DOM
class NodeList
Les objets NodeList sont des collections de nœuds comme celles retournées par getElementsByTagName() ou document.querySelectorAll().
NodeList implémente les protocoles PHP Iterator, ArrayAccess et Countable
$length
length renvoie le nombre d'éléments dans une NodeList.
item(int $index): ? Node
Renvoie un noeud depuis une NodeList par l'index. Une valeur null est renvoyée si l'index est hors des limites.
class Element
Element est la classe de base la plus générique dont héritent tous les objets qui représentent des éléments d'un document.
getAttribute(string $name): string
getAttribute() renvoie la valeur d'un attribut donné de l'élément spécifié. Si l'attribut n'existe pas, la valeur renvoyée sera null. setAttribute(string $name, mixed $value): void
Ajoute un nouvel attribut ou change la valeur d'un attribut existant pour l'élément spécifié. Si l'attribut existe déjà, la valeur est mise à jour ; sinon, un nouvel attribut est ajouté avec le nom et la valeur spécifiés. removeAttribute(string $name): void
La méthode removeAttribute(), rattachée à l'interface Element, supprime l'attribut ayant le nom indiqué de l'élément. getElementsByTagName(string $tagName): NodeList
La méthode getElementsByTagName() retourne une liste des éléments portant le nom de balise donné. La recherche porte sur le sous-arbre de l'élément spécifié, à l'exception de cet élément lui-même. hasAttribute(string $name): bool
La méthode hasAttribute() renvoie une valeur booléenne indiquant si l'élément courant possède l'attribut spécifié ou non. loadHTML(string $source)
Remplace le contenu de l'objet par le contenu spécifié
loadHTMLFile($filename)
Remplace le contenu de l'objet par le contenu HTML du fichier spécifié
saveHTML()
Retourne le contenu sérialisé de l'objet. Alias de __toString(), ou de $outerHTML
saveHTMLFile($filename)
Sauvegarde dans un fichier le contenu sérialisé de l'objet
content(): NodeList
Retourne le contenu du document sous forme de NodeList
querySelector(string $selectors): ?Element
La méthode querySelector() de l'interface Document retourne le premier Element dans le document correspondant au sélecteur - ou groupe de sélecteurs - spécifié(s), ou null si aucune correspondance n'est trouvée.
querySelectorAll(string $selectors): NodeList
La méthode querySelectorAll() retourne une NodeList statique (non-dynamique) des éléments correspondants au groupe de sélecteurs CSS spécifiés qui sont des descendants de l'élément sur lequel la méthode a été appelée.
find(string $selectors): ?Element
Alias de querySelector
findAll(string $selectors): NodeList
Alias de querySelectorAll
explode( /* selector list */ ) : array
Sérialise l'objet en HTML, puis découpe le texte produit en morceaux délimités par les noeuds désignés par les sélecteurs fournis.
class CharacterData
L'interface abstraite CharacterData représente un noeud qui contient des caractères. C'est une interface abstraite, ce qui signifie qu'il n'existe aucun objet de ce type. Elle est implémentée par d'autres interfaces comme Text ou Comment qui ne sont pas abstraites.
class Text
L'interface Text représente le contenu textuel d'un élément Element
$nodeValue
La propriété $nodeValue renvoie ou définit le contenu du nœud courant.
class Comment
L'interface Comment représente des annotations textuelles au sein du balisage; même si elles ne sont généralement pas montrées, elles sont disponibles à la lecture dans le code source.
$nodeValue
La propriété $nodeValue renvoie ou définit le contenu du nœud courant.
class DocumentType
L'interface DocumentType représente un nœud contenant un doctype.
class DocumentFragment
L'interface DocumentFragment représente un objet document minimal qui n'a pas de parent. Il est utilisé comme une version légère de Document pour stocker un segment de structure de document composé de nœuds, tout comme un document standard. La différence fondamentale est que, comme le fragment de document ne fait pas réellement partie de la structure du DOM, les changements faits au fragment n'affectent pas le document
loadHTML(string $source)
Remplace le contenu de l'objet par le contenu spécifié
loadHTMLFile($filename)
Remplace le contenu de l'objet par le contenu HTML du fichier spécifié
saveHTML()
Retourne le contenu sérialisé de l'objet. Alias de __toString(), ou de $outerHTML
saveHTMLFile($filename)
Sauvegarde dans un fichier le contenu sérialisé de l'objet
content(): NodeList
Retourne le contenu du document sous forme de NodeList
querySelector(string $selectors): ?Element
La méthode querySelector() de l'interface Document retourne le premier Element dans le document correspondant au sélecteur - ou groupe de sélecteurs - spécifié(s), ou null si aucune correspondance n'est trouvée.
querySelectorAll(string $selectors): NodeList
La méthode querySelectorAll() retourne une NodeList statique (non-dynamique) des éléments correspondants au groupe de sélecteurs CSS spécifiés qui sont des descendants de l'élément sur lequel la méthode a été appelée.
find(string $selectors): ?Element
Alias de querySelector
findAll(string $selectors): NodeList
Alias de querySelectorAll
explode( /* selector list */ ) : array
Sérialise l'objet en HTML, puis découpe le texte produit en morceaux délimités par les noeuds désignés par les sélecteurs fournis.
class Document
La classe Document représente n'importe quelle page web, et sert de point d'entrée pour accéder au contenu de la page qui est formé par l'arbre du DOM.
L'arbre du DOM inclut les éléments tels que <body>, <table> et tous les autres présents dans la page. Il fournit des fonctionnalités à l'ensemble du document et permet, par exemple, d'obtenir l'URL de la page et de créer de nouveaux éléments dans le document.
$doctype
Renvoie la "Document Type Declaration (DTD)" (déclaration de type de document) associée avec le document actuel. L'objet renvoyé est de classe DocumentType. Utilisez DOMImplementation::createDocumentType() pour créer un DocumentType.
$implementation
Retourne un objet DOMImplementation associé avec le document courant.
$characterSet
$characterSet spécifie l'encodage du document. Par défaut, l'encodage interne est toujours UTF-8.
$contentType
Renvoie le type MIME dans lequel le document est rendu. Ici, toujours "text/html"
createElement(string $tagName): Element
Dans un document HTML, la méthode createElement() crée un élément HTML du type spécifié par tagName
createDocumentFragment(): DocumentFragment
Crée un nouvel objet vide de type DocumentFragment.
createTextNode(string $data): Text
Crée un nouveau nœud de texte.
createComment(string $data): Comment
createComment() crée et retourne un nouveau noeud de type commentaire.
getElementsByTagName(string $tagName): NodeList
La méthode getElementsByTagName() retourne une liste des éléments portant le nom de balise donné.
importNode(Node $importedNode, bool $deep): Node
La méthode Document importNode() crée une nouvelle copie du Node ou DocumentFragment spécifié à partir d'un autre document, afin qu'il puisse être inséré dans le document actuel. Il n'est pas encore inclus dans l'arbre des documents; Pour ce faire, vous devez appeler une méthode telle que appendChild() ou insertBefore().
getElementById(string $elementId): ? Element
La méthode getElementById() de Document renvoie un objet Element représentant l'élément dont la propriété id correspond à la chaîne de caractères spécifiée. Étant donné que les ID d'élément doivent être uniques, s'ils sont spécifiés, ils constituent un moyen utile d'accéder rapidement à un élément spécifique. Si vous avez besoin d'accéder à un élément qui n'a pas d'ID, vous pouvez utiliser querySelector() pour trouver l'élément en utilisant un sélecteur.
adoptNode(Node $source): Node
Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son ownerDocument (document propriétaire) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours.
loadHTML(string $source)
Remplace le contenu de l'objet par le contenu spécifié
loadHTMLFile($filename)
Remplace le contenu de l'objet par le contenu HTML du fichier spécifié
saveHTML()
Retourne le contenu sérialisé de l'objet. Alias de __toString(), ou de $outerHTML
saveHTMLFile($filename)
Sauvegarde dans un fichier le contenu sérialisé de l'objet
content(): NodeList
Retourne le contenu du document sous forme de NodeList
querySelector(string $selectors): ?Element
La méthode querySelector() de l'interface Document retourne le premier Element dans le document correspondant au sélecteur - ou groupe de sélecteurs - spécifié(s), ou null si aucune correspondance n'est trouvée.
querySelectorAll(string $selectors): NodeList
La méthode querySelectorAll() retourne une NodeList statique (non-dynamique) des éléments correspondants au groupe de sélecteurs CSS spécifiés qui sont des descendants de l'élément sur lequel la méthode a été appelée.
find(string $selectors): ?Element
Alias de querySelector
findAll(string $selectors): NodeList
Alias de querySelectorAll
explode( /* selector list */ ) : array
Sérialise l'objet en HTML, puis découpe le texte produit en morceaux délimités par les noeuds désignés par les sélecteurs fournis.