Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich inneres HTML aus DOM-Knoten in PHP extrahieren?

Wie kann ich inneres HTML aus DOM-Knoten in PHP extrahieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 13:56:11887Durchsuche

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

Extrahieren von innerem HTML aus DOM-Knoten in PHP

Die PHP-DOM-Implementierung bietet nativ keine Methode zum Abrufen des inneren HTML eines bestimmten DOM-Knotens . Um dieses Problem zu beheben, haben Entwickler eine Problemumgehung mithilfe der DOMinnerHTML()-Funktion entwickelt.

DOMinnerHTML-Funktion

Die DOMinnerHTML()-Funktion verwendet einen DOMNode als Parameter und gibt den zurück innerHTML als String. Es iteriert rekursiv durch die untergeordneten Knoten des DOMNode und erstellt das innereHTML, indem es jeden untergeordneten Knoten mit $element->ownerDocument->saveHTML($child) serialisiert.

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

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

    return $innerHTML; 
} 

Beispielverwendung

Um die Funktion DOMinnerHTML() zu verwenden, erstellen Sie ein neues DOMDocument Objekt, laden Sie Ihren HTML-Code hinein und rufen Sie die DOMNodeList mit den gewünschten Knoten ab. Anschließend durchlaufen Sie die DOMNodeList und rufen DOMinnerHTML() auf jedem Knoten auf, um dessen innerHTML zu extrahieren.

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

Diese Problemumgehung bietet eine zuverlässige Lösung zum Abrufen des innerHTML von DOMNodes in PHP und ermöglicht Entwicklern den Zugriff und die Änderung Inhalt von DOM-Elementen ohne Verwendung externer Bibliotheken.

Das obige ist der detaillierte Inhalt vonWie kann ich inneres HTML aus DOM-Knoten in PHP extrahieren?. 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