Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich mit DOMDocument und XPath von PHP bestimmten Text aus HTML?

Wie extrahiere ich mit DOMDocument und XPath von PHP bestimmten Text aus HTML?

DDD
DDDOriginal
2024-11-01 13:00:03376Durchsuche

How do I extract specific text from HTML using PHP's DOMDocument and XPath?

HTML mit PHPs DOMDocument analysieren

Um bestimmte Textelemente aus HTML mit PHPs DOMDocument zu extrahieren, kann die Nutzung von XPath-Abfragen effektiver sein, als sich allein darauf zu verlassen auf DOMDocument::getElementsByTagName. XPath-Abfragen ermöglichen eine präzise Auswahl basierend auf bestimmten Kriterien innerhalb der Dokumentstruktur.

Erfassen von Text aus verschachtelten DIVs

Der bereitgestellte Beispiel-HTML enthält verschachtelte

Tags, bei denen sich der Zieltext innerhalb von
befindet. Elemente mit der Klasse „text“, die wiederum innerhalb von
verschachtelt sind. Elemente mit der Klasse „main“.

Um den Zieltext zu erfassen, kann eine XPath-Abfrage verwendet werden:

<code class="php">$xpath->query('//div[@class="main"]/div[@class="text"]');</code>

Diese Abfrage wählt alle

Elemente, deren Klassenattribut auf „text“ gesetzt ist und die Nachkommen von
sind. Elemente mit einem Klassenattribut, das auf „main“ gesetzt ist. Das Ergebnis ist eine Liste der übereinstimmenden Elemente.

Iterieren und Extrahieren von Knotenwerten

Um auf den tatsächlichen Textinhalt zuzugreifen, kann jedes übereinstimmende Element über seinen Knotenwert iteriert werden Eigenschaft, auf die zugegriffen wird:

<code class="php">foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}</code>

Die Funktion trim() wird verwendet, um alle führenden oder nachgestellten Leerzeichen aus dem extrahierten Text zu entfernen.

Ausführungsausgabe

Beim Ausführen des Codes wird Folgendes ausgegeben:

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)

Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit DOMDocument und XPath von PHP bestimmten Text aus HTML?. 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