Einführung
DOMDocument, eine PHP-Klasse, bietet einen praktischen Ansatz zum Parsen und Bearbeiten von HTML-Dokumenten. Beim Versuch, HTML-Tags beim Extrahieren von Inhalten beizubehalten, kann es jedoch zu Schwierigkeiten kommen. Dieser Artikel befasst sich mit dem zugrunde liegenden Konzept von DOM und schlägt Lösungen zur Bewältigung dieser Herausforderung vor.
DOM und Knoten verstehen
DOMDocument stellt HTML-Dokumente als hierarchische Knotenbäume dar. Jeder Knoten kann untergeordnete Knoten haben, die eine komplexe Struktur bilden. Es ist wichtig zu erkennen, dass HTML-Elemente zusammen mit ihren Attributen und Textinhalten alle als Knoten innerhalb eines DOM-Dokuments dargestellt werden.
Lösung des Tag-Erhaltungsproblems
Die bereitgestellten Der Code ruft den DIV-Knoten mit der ID „showContent“ erfolgreich ab. Es ruft jedoch nur den Textinhalt innerhalb des DIV ab, mit Ausnahme der HTML-Tags selbst. Dies liegt daran, dass der Code $tag->nodeValue verwendet, wodurch lediglich der Text und nicht die tatsächlichen Knoten extrahiert werden.
Lösung: Knoten durchqueren
Um HTML-Knoten beizubehalten, müssen Sie die untergeordneten Knoten Ihres Zielknotens durchlaufen. Der folgende Code veranschaulicht diesen Ansatz:
$dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $tags = $xpath->query('.//div[@id="showContent"]'); foreach ($tags as $tag) { echo $dom->saveXML($tag); echo '<br>'; }
Abrufen spezifischer Informationen aus HTML
Wenn Sie bestimmte Informationen aus dem HTML-Dokument benötigen, z. B. Links aus der Tabelle, Sie können die XPath-Abfrage ändern, um die entsprechenden Knoten auszuwählen. Zum Beispiel:
foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link); }
Zusätzliche Ressourcen
Weitere Unterstützung bei der Arbeit mit DOMDocument finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann ich HTML-Tags beim Extrahieren von Knoten mit PHPs DOMDocument beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!