Dom\HTMLDocument (parseur HTML5)

PHP 🟡 Mid

Définition

Nouvelle API DOM de PHP 8.4, dans l'espace de noms Dom, conforme aux standards et dotée d'un vrai parseur HTML5. Dom\HTMLDocument::createFromString()/createFromFile() remplacent DOMDocument (parseur XML) et offrent querySelector(), classList et un encodage UTF-8 par défaut.

Analogie

Passer d'un traducteur qui ne comprend que le latin classique à un natif qui lit l'argot d'aujourd'hui.

Exemple de code

$dom = Dom\HTMLDocument::createFromString(
  '<main><article>PHP 8.4</article>
   <article class="featured">DOM HTML5</article></main>',
  LIBXML_NOERROR,
);

$node = $dom->querySelector('main > article:last-child');
var_dump($node->classList->contains('featured')); // true

// avant : new DOMDocument() + loadHTML() + DOMXPath

Cas d'usage

Scraper ou nettoyer du HTML réel (balises non fermées, HTML5) sans les avertissements et les erreurs de DOMDocument.

Anti-pattern

Utiliser DOMDocument::loadHTML() sur du HTML5 moderne et masquer les erreurs avec @.
#core#php84

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre