Maison > développement back-end > tutoriel php > Comment puis-je extraire le HTML interne des nœuds DOM en PHP ?

Comment puis-je extraire le HTML interne des nœuds DOM en PHP ?

Barbara Streisand
Libérer: 2024-12-18 13:56:11
original
887 Les gens l'ont consulté

How Can I Extract Inner HTML from DOM Nodes in PHP?

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; 
} 
Copier après la connexion

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); 
} 
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal