2016-11-20 84 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完好无损。 –