„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich HTML-Tags beim Extrahieren von Knoten mit PHPs DOMDocument beibehalten?

Wie kann ich HTML-Tags beim Extrahieren von Knoten mit PHPs DOMDocument beibehalten?

Veröffentlicht am 22.12.2024
Durchsuche:385

How Can I Preserve HTML Tags When Extracting Nodes Using PHP's DOMDocument?

Probleme beim Extrahieren von HTML-Knoten mit DOMDocument

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.

Beheben des Tag-Erhaltungsproblems

Das bereitgestellte 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 '
'; }

Bestimmte Informationen aus HTML abrufen

Wenn Sie bestimmte Informationen aus dem HTML-Dokument benötigen, z. B. Links aus der Tabelle, können Sie die XPath-Abfrage ändern, um die auszuwählen entsprechende Knoten. 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:

  • [DOMDocument-Dokumentation](https ://www.php.net/manual/en/class.domdocument.php)
  • [Fragen und Antworten zu DOMDokument im Stapelüberlauf](https://stackoverflow.com/search?q=user:208809 DOM)
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3