2016-06-22 3 views
0

Ich habe mehrere DIVs mit Inhalt in einer PHP-Datei: div class = "sco".Wie man Inhalte aus allen DIVs mit class = "sco" mit DOM und PHP extrahiert

Der folgende Code funktioniert sehr gut, aber es extrahiert nur den Inhalt aus dem ersten DIV. Wie kann ich Inhalte aus allen DIVs extrahieren?

Vielen Dank im Voraus.

$html = file_get_contents('http://www..../include/test.php'); 
$doc = new DOMDocument(); 
libxml_use_internal_errors(true); 
$doc->loadHTML($html); 
$finder = new DomXPath($doc); 
$node = $finder->query("//*[contains(@class, 'sco')]"); 
print_r($doc->saveHTML($node->item(0))); 
+0

Danke Jungs. Es klappt. – runein

Antwort

0

In der letzten Zeile, du Zugriff nur auf das erste Element (Index 0): $node->item(0)

Stattdessen, Schleife die $node und drucken Sie jedes Element:

$node = $finder->query("//*[contains(@class, 'sco')]"); 
foreach($node as $item){ 
    print_r($doc->saveHTML($item)); 
} 
0

iterieren einfach über Ihr DOMNodeList Objekt:

<?php 

$html = ' 
<div class="sco">a</div> 
<div class="sco">b</div> 
<div class="sco">c</div> 
'; 

$doc = new DOMDocument(); 
libxml_use_internal_errors(true); 
$doc->loadHTML($html); 
$finder = new DomXPath($doc); 
$node = $finder->query("//*[contains(@class, 'sco')]"); 

for($i=0;$i<$node->length;$i++) 
{ 
    echo "<pre>"; 
    var_dump($node->item($i)->nodeValue); 
    echo "</pre>"; 
} 

Ausgang:

string(1) "a" 
string(1) "b" 
string(1) "c" 
Verwandte Themen