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!