如何根据 class 提取 div 里面的内容?

How to extract the contents inside a div based on its class?

我试过这个代码,

$html= file_get_contents("page.html");
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementsByClassName('mydiv1');
$result = $dom->saveHTML($div);
echo $result;

page.html

<html>
<body>
<div id="test">
<div class="mydiv1">Hello</div>
<div class="mydiv2">How are you</div>
</div>
</body>
</html>

但是当我尝试使用 Id 时,它的工作原理。喜欢,

$html= file_get_contents("page.html");
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$result = $dom->saveHTML($div);
echo $result;

如何获取基于class的内容?

DOMDocument 中没有实际的 getElementsByClassName(还),但使用 DOMXpath 可以产生相同的结果:

$dom = new DomDocument();
$dom->load($filePath);
$finder = new DomXPath($dom);
$nodes= $finder->query('//div[@class="mydiv1"]');

试试这个代码,

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$div = $xpath->query('//div[@class="mydiv1"]');
$div = $div->item(0);
$result = $dom->saveXML($div);
echo $result;