Maison > développement back-end > tutoriel php > Comment puis-je récupérer du HTML interne et externe à partir d'un nœud DOM en PHP ?

Comment puis-je récupérer du HTML interne et externe à partir d'un nœud DOM en PHP ?

Patricia Arquette
Libérer: 2024-12-26 12:56:14
original
628 Les gens l'ont consulté

How Can I Retrieve Inner and Outer HTML from a DOM Node in PHP?

Manipulation DOM en PHP : récupération du HTML interne et externe

Dans l'implémentation DOM de PHP, récupérer le HTML interne ou externe d'un nœud DOM est pas simple. Contrairement à d'autres environnements de développement, PHP ne dispose pas de fonctions natives spécialement conçues à cet effet.

Solution

Pour surmonter ce problème, les développeurs ont conçu des méthodes fiables utilisant la traversée du DOM et la manipulation de chaînes. Voici une solution qui extrait avec précision le HTML interne et externe :

function DOMinnerHTML(DOMNode $element) 
{ 
    $innerHTML = ""; 
    $children  = $element->childNodes;

    foreach ($children as $child) 
    { 
        $innerHTML .= $element->ownerDocument->saveHTML($child);
    }

    return $innerHTML; 
}

// Usage for outerHTML:
// Recursively call DOMinnerHTML with parent as a parameter
Copier après la connexion

Exemple :

$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

Remarque :

Cette solution exploite la méthode saveHTML() pour la traversée des nœuds et l'extraction HTML. Il parcourt les nœuds enfants de l'élément spécifié, les traitant de manière récursive pour construire le code HTML interne ou externe résultant.

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