Php dom按div id获取元素

Php dom按div id获取元素,php,dom,Php,Dom,下面是我的html,我想用classucontent 我试着使用下面的代码,但它不工作 $dom = new DOMDocument(); $dom->loadHTML($fop); $classname="ucontent"; $nodes = $finder->query("//*[contains(@class, '$classname')]"); print_r($nodes); 我的html代码如下 <div class="abc"> <di

下面是我的html,我想用classucontent 我试着使用下面的代码,但它不工作

$dom = new DOMDocument();
$dom->loadHTML($fop);
$classname="ucontent";
$nodes = $finder->query("//*[contains(@class, '$classname')]");


print_r($nodes);
我的html代码如下

<div class="abc">
    <div>
        <div class="ucontent">test 123</div>
    </div>
</div>
<div class="abc">
    <div>
    <div>
        <div class="ucontent">test 123</div>
    </div>
    </div>
</div>
<div class="abc">
    <span>
        <div class="ucontent">test 123</div>
    </span>
</div>
<div class="abc">
    <div>
        <div class="ucontent">test 123</div>
    </div>
</div>

测试123
测试123
测试123
测试123

要使用class
ucontent获取每个div的内容,您可以尝试:

$dom = new DOMDocument();
@$dom->loadHTML($dom);
$path = new DOMXPath($dom);     

$nodes= $path->query("/html/body//div[@class='ucontent']/div[last()]");

foreach ($nodes as $i => $node) {
    echo $i, $node->nodeValue, PHP_EOL;
}

您需要定义
$finder
-
$finder=newdomxpath($dom)。这将给出一个包含4个节点的列表。您需要
foreach($nodes…)
来获取内容等。