Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mithilfe von PHPs DOMDocument und XPath effizient Text aus bestimmten HTML-Elementen extrahieren?

Wie kann ich mithilfe von PHPs DOMDocument und XPath effizient Text aus bestimmten HTML-Elementen extrahieren?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 08:48:29508Durchsuche

How to Efficiently Extract Text from Specific HTML Elements Using PHP's DOMDocument and XPath?

HTML mit PHPs HTML DOMDocument analysieren

Frage:

Verwendung des DOMDocument-Objekts, Erfassung Text innerhalb bestimmter HTML-Elemente. Beispiel: Extrahieren von „Erfassen Sie diesen Text 1“ und „Erfassen Sie diesen Text 2“ aus dem folgenden HTML:

<div class="main">
    <div class="text">
    Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
    Capture this text 2
    </div>
</div>

Antwort:

Verwenden von DOMDocument::getElementsByTagName Das Abrufen aller Tags mit einem bestimmten Namen kann sich für diese Aufgabe als ineffizient erweisen. Erwägen Sie stattdessen die Verwendung einer XPath-Abfrage für das Dokument und nutzen Sie dabei die DOMXPath-Klasse.

Implementierung:

  1. HTML in ein DOM-Dokument laden Objekt:

    <code class="php">$html = <<<HTML
    <div class="main">
     <div class="text">
     Capture this text 1
     </div>
    </div>
    
    <div class="main">
     <div class="text">
     Capture this text 2
     </div>
    </div>
    HTML;
    
    $dom = new DOMDocument();
    $dom->loadHTML($html);</code>
  2. DOMXPath instanziieren Objekt:

    <code class="php">$xpath = new DOMXPath($dom);</code>
  3. XPath ausführen Abfrage:

    <code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
  4. Textwerte abrufen:

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

Dieser Ansatz extrahiert effektiv „ „Erfassen Sie diesen Text 1“ und „Erfassen Sie diesen Text 2“ aus dem bereitgestellten HTML.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PHPs DOMDocument und XPath effizient Text aus bestimmten HTML-Elementen 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