2016-11-20 82 views
1
$html = file_get_contents("https://www.wireclub.com/chat/room/music"); 

$dom = new DOMDocument(); 
$dom->loadHTML($html); 

$xpath = new DOMXPath($dom); 
$result = array(); 

foreach($xpath->evaluate('//div[@class="message clearfix"]/node()') as $childNode) { 
$result[] = $dom->saveHtml($childNode); 
} 
echo '<pre>'; var_dump($result); 

我想要單獨處理數組中的每個單獨DIV的內容。解析HTML以按類提取DIV內容數組

此代碼將每個DIV聚集在一起。

回答

1

你可以檢索所有div和獲得的nodeValue

$dom = new DOMDocument(); 
$dom->loadHTML($html); 

$myDivs = $dom->getElementsByTagName('div'); 
foreach($myDivs as $key => $value) { 
     $result[] = $value->nodeValue; 
} 

var_dump($result); 

類,你應該

你可以使用你的代碼

$xpath = new DOMXPath($dom); 
$myElem = $xpath->query("//*[contains(@class, '$classname')]"); 
foreach($myElem as $key => $value) { 
    $result[] = $value->nodeValue; 
} 
+0

我將如何使用該代碼的類選擇? –

+0

我已經更新了答案,希望有用 – scaisEdge

+0

這很好,但它應該是$ value-> nodeValue,它將剝離DIV內容的HTML。我寧願保持HTML完好無損。 –