Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich mit DOMDocument Text aus Elementen mit einer bestimmten Klasse in PHP?

Wie extrahiere ich mit DOMDocument Text aus Elementen mit einer bestimmten Klasse in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-12 10:24:01296Durchsuche

How to Extract Text from Elements with a Specific Class in PHP Using DOMDocument?

Text aus Elementen mit angegebener Klasse reduzieren

Einführung:

Das Parsen von HTML mit PHP DOM kann insbesondere eine Herausforderung sein bei der Bearbeitung spezifischer Anforderungen. In diesem Artikel wird eine Lösung zum Extrahieren von Text aus Elementen mit einer bestimmten Klasse und zum Organisieren in strukturierten Arrays untersucht.

Szenario:

Betrachten Sie den folgenden HTML-Inhalt:

<p class="Heading1-P">
    <span class="Heading1-H">Chapter 1</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 1</span>
</p>

Das Ziel besteht darin, den Text aus zu extrahieren. Elemente mit der Klasse „Heading1-H“ in das Array $heading und Text von denen mit der Klasse „Normal-H“ in das Array $content, was zu Folgendem führt:

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];

Lösung mit DOMDocument und DOMXPath:

Wir verwenden DOMDocument und DOMXPath, um dieses Problem anzugehen Aufgabe.

// Load HTML into DOMDocument
$dom = new DOMDocument();
$dom->loadHTML($html);

// Create DOMXPath object
$xpath = new DOMXPath($dom);

// Get elements with desired class using XPath
$xpathQuery = "//*[@class='$class']";
$elements = $xpath->query($xpathQuery);

// Extract text from elements and store in arrays
$headings = [];
$contents = [];
foreach ($elements as $element) {
    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
        $headings[] = $node->nodeValue;
    }
}

var_dump($headings);

Diese Lösung analysiert effektiv den HTML-Code und gibt die gewünschten Arrays zurück.

Hinweis:

Die Verwendung von jQuery für diese Aufgabe ist nicht möglich empfohlen, da PHP DOM einen strukturierteren und programmatischeren Ansatz zur HTML-Manipulation bietet.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit DOMDocument Text aus Elementen mit einer bestimmten Klasse in PHP?. 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