Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich inneren und äußeren HTML-Code von einem DOM-Knoten in PHP abrufen?

Wie kann ich inneren und äußeren HTML-Code von einem DOM-Knoten in PHP abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-26 12:56:14633Durchsuche

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

DOM-Manipulation in PHP: Abrufen von innerem und äußerem HTML

In der DOM-Implementierung von PHP ist das Abrufen des inneren oder äußeren HTML-Codes eines DOM-Knotens nicht einfach. Im Gegensatz zu anderen Entwicklungsumgebungen fehlen PHP native Funktionen, die speziell für diesen Zweck entwickelt wurden.

Lösung

Um dieses Problem zu lösen, haben Entwickler zuverlässige Methoden entwickelt, die DOM-Traversal und String-Manipulation nutzen. Hier ist eine Lösung, die sowohl inneres als auch äußeres HTML genau extrahiert:

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

Beispiel:

$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); 
}

Hinweis:

Diese Lösung nutzt die saveHTML()-Methode für die Knotendurchquerung und HTML-Extraktion. Es durchläuft die untergeordneten Knoten des angegebenen Elements und verarbeitet sie rekursiv, um den resultierenden inneren oder äußeren HTML-Code zu erstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich inneren und äußeren HTML-Code von einem DOM-Knoten in PHP abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn