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:
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>
DOMXPath instanziieren Objekt:
<code class="php">$xpath = new DOMXPath($dom);</code>
XPath ausführen Abfrage:
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
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!