Extraction du HTML interne des nœuds DOM en PHP
L'implémentation PHP DOM ne fournit pas nativement de méthode pour récupérer le innerHTML d'un DOMNode donné . Pour résoudre ce problème, les développeurs ont conçu une solution de contournement en utilisant la fonction DOMinnerHTML().
Fonction DOMinnerHTML
La fonction DOMinnerHTML() prend un DOMNode comme paramètre et renvoie le innerHTML sous forme de chaîne. Il parcourt de manière récursive les nœuds enfants du DOMNode, construisant le innerHTML en sérialisant chaque nœud enfant à l'aide de $element->ownerDocument->saveHTML($child).
function DOMinnerHTML(DOMNode $element) { $innerHTML = ""; $children = $element->childNodes; foreach ($children as $child) { $innerHTML .= $element->ownerDocument->saveHTML($child); } return $innerHTML; }
Exemple d'utilisation
Pour utiliser la fonction DOMinnerHTML(), créez un nouveau DOMDocument objet, chargez-y votre code HTML et récupérez la DOMNodeList contenant les nœuds souhaités. Ensuite, parcourez la DOMNodeList et appelez DOMinnerHTML() sur chaque nœud pour extraire son innerHTML.
$dom= new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->load($html_string); $domTables = $dom->getElementsByTagName("table"); // Iterate over DOMNodeList (Implements Traversable) foreach ($domTables as $table) { echo DOMinnerHTML($table); }
Cette solution de contournement fournit une solution fiable pour récupérer le innerHTML des DOMNodes en PHP, permettant aux développeurs d'accéder et de modifier le contenu des éléments DOM sans utiliser de bibliothèques externes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!