<span class="byline">
<ul class="foobar"></ul>
<img alt="" src="resize_image.php?src=images/newsManagement/87600069ef0dffad5fd02f862ea3787b.jpg&w=675&h=675">
<p style="text-align: justify;">
<img alt="" src="resize_image.php?src=images/newsManagement/87600069ef0dffad5fd02f862ea3787b.jpg&w=675&h=675">
<hr>
嗨,这是我的 html。 我可以使用 DOMDocument 获取所有图像,但我想获得ul.foobar
课后的第一个图像。我不想要其他图像。我该如何查询。
我为所有图像尝试了这个。
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($url);
//$xpath = new DomXpath($doc);
//$entries = $xpath->query("//div[@id='newsbox']/ul[@class='foobar']");
$elements = $dom->getElementsByTagName('img');
if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>". $element->getAttribute('src'). ": ";
}
}
我认为您可以将 DOMXPath 查询与这个 xpath 表达式一起使用:
$image = $xpath->query('//ul[@class="foobar"]/following-sibling::img')->item(0);
这将使用以下同级获取以下 img 同级<ul class="foobar">
,然后获取第一项。
$image
是圆顶类型。
在此示例中,我使用 loadHTML 从字符串$source
加载 html。如果你想从文件加载你的html,你可以使用loadHTMLFile。
$source = <<<SOURCE
<span class="byline">
<ul class="foobar"></ul>
<img alt="" src="resize_image.php?src=images/newsManagement/87600069ef0dffad5fd02f862ea3787b.jpg&w=675&h=675">
<p style="text-align: justify;">
<img alt="" src="resize_image.php?src=images/newsManagement/87600069ef0dffad5fd02f862ea3787b.jpg&w=675&h=675">
<hr>
SOURCE;
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($source);
$xpath = new DomXpath($dom);
$image = $xpath->query('//ul[@class="foobar"]/following-sibling::img')->item(0);