gpt4 book ai didi

php - 使用 DOMXpath::query 获取 id 旁边的第一张图片

转载 作者:行者123 更新时间:2023-11-28 03:01:26 24 4
gpt4 key购买 nike

 <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 query使用此 xpath 表达式:

$image = $xpath->query('//ul[@class="foobar"]/following-sibling::img')->item(0);

这将为 <ul class="foobar"> 获取以下 img sibling 使用 following-sibling然后得到第一个项目。

$image类型为 DOMElement .

在此示例中,我使用了 loadHTML从字符串中加载 html $source .如果你想从一个文件加载你的 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);

关于php - 使用 DOMXpath::query 获取 id 旁边的第一张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34541584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com