2017-03-06 98 views
2

我refered这个question获取HTML标签之间的所有元素在PHP

但是,我想遍历并获得所有的HTML标签

这之间的所有元素是我做的

$homepage = file_get_contents('http://www.example.com');

,它将打印以下

<html> 
<body> 
<div class = "alpha">hey</div> 
<div class = "beta">one</div> 
<div class = "beta">two</div> 
</body> 
</html> 

在这里,我需要获得所有类与测试版的元素。

我该怎么做?

下面是我试过到目前为止

$dom = new DOMDocument(); 
$dom->loadHTML($homepage); 
foreach($dom->getAllElements as $element){ 
    if(!$element->hasClass('beta')){ 
     echo $element; 
    } 
} 

的代码,但它说:DOMDocument::loadHTML(): Tag nav invalid in Entity,

回答

4

试试这个

<?php 

$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$dom->loadHTML("<html> 
<body> 
<div class = 'alpha'>hey</div> 
<div class = 'beta'>one</div> 
<div class = 'beta'>two</div> 
</body> 
</html>"); 
libxml_clear_errors(); 

$classname="beta"; 
$finder = new DomXPath($dom); 
$spaner = $finder->query("//*[contains(@class, '$classname')]"); 

foreach($spaner as $element){ 
print_r($element); 
} 

?> 
+1

它的伟大工程! –

相关问题