Qu’est-ce que DOM ?
Le module DOM en PHP est une extension permettant de manipuler des documents XML et HTML en utilisant l’API Document Object Model (DOM). Le DOM est une représentation hiérarchique des documents structurés, où chaque élément est un nœud pouvant être modifié, supprimé ou ajouté dynamiquement.
Cette extension est particulièrement utile pour :
- Analyser et modifier des documents XML et HTML.
- Créer des fichiers XML dynamiquement.
- Extraire des informations spécifiques d’un document structuré.
- Valider un document XML avec un schéma ou une DTD.
Le module DOM est basé sur la bibliothèque libxml et est souvent utilisé avec XPath et XSLT pour des manipulations avancées de documents XML.
Fonctionnalités du module DOM en PHP
Le module DOM offre plusieurs fonctionnalités pour interagir avec des documents XML et HTML :
- Chargement et analyse de fichiers XML et HTML (
loadXML()
,loadHTML()
) - Parcours et modification de la structure DOM (
getElementById()
,getElementsByTagName()
,appendChild()
,removeChild()
) - Création dynamique de documents XML (
createElement()
,createTextNode()
) - Validation de documents XML via des DTD ou schemas XSD (
validate()
) - Utilisation d’XPath pour rechercher des éléments (
DOMXPath
)
Exemple d’utilisation :
Charger et parcourir un document XML :
$xml = <<<XML <?xml version="1.0"?> <livres> <livre id="1"> <titre>PHP avancé</titre> <auteur>Jean Dupont</auteur> </livre> <livre id="2"> <titre>XML et DOM</titre> <auteur>Sophie Martin</auteur> </livre> </livres> XML; $dom = new DOMDocument(); $dom->loadXML($xml); // Récupérer tous les titres des livres $titres = $dom->getElementsByTagName("titre"); foreach ($titres as $titre) { echo $titre->nodeValue . "\n"; }
Modifier un élément dans un document XML :
$dom->getElementsByTagName("titre")->item(0)->nodeValue = "PHP et DOM"; echo $dom->saveXML();
Avantages de DOM
- Manipulation flexible : Permet d’ajouter, modifier ou supprimer des éléments XML et HTML dynamiquement.
- Supporte les standards XML et HTML : Compatible avec les DTD, XSD, XPath, XSLT.
- Facile à utiliser : Offre une API intuitive inspirée du modèle DOM standard du W3C.
- Meilleure gestion des erreurs que
SimpleXML
, notamment pour les documents XML complexes.
Inconvénients de DOM
- Consommation mémoire élevée : Charge l’ensemble du document en mémoire, ce qui peut poser problème pour les fichiers volumineux.
- Moins performant que SAX pour le traitement de gros fichiers XML, car DOM charge tout le document en mémoire au lieu de le traiter ligne par ligne.
- Syntaxe plus complexe que
SimpleXML
pour les opérations basiques.
Conclusion
Le module DOM en PHP est un outil puissant pour travailler avec des documents XML et HTML, permettant leur création, modification et validation. Bien qu’il soit plus gourmand en mémoire que SAX et plus complexe que SimpleXML, il reste un choix incontournable pour les manipulations avancées de documents structurés.
🔗 Références :
- Documentation officielle PHP DOM : php.net/dom
- Wikipedia sur le DOM : fr.wikipedia.org/wiki/Document_Object_Model
- Standard W3C DOM : w3.org/DOM