[英]xpath query not returning data
i'm trying to figure out how to get a attribute from a specific div on a web page, but my query isn't returning anything. 我试图弄清楚如何从网页上的特定div获取属性,但是我的查询未返回任何内容。 I'm assuming my query is just wrong. 我假设我的查询是错误的。
i'm trying to get the data-original url from this div: 我正在尝试从此div获取数据原始网址:
<div
class="p-dynamic-image vox-lazy-load lazy-loaded”
data-original="https://cdn2.vox-cdn.com/thumbor/Bv7HhgyCscPLXrx2qHPzo8dlU4g=/0x0:7015x4677/2050x1367/cdn0.vox-cdn.com/uploads/chorus_image/image/46369294/RzrFirefly_01_DA.0.0.jpg”
style="background-image: url(https://cdn2.vox-cdn.com/thumbor/Bv7HhgyCscPLXrx2qHPzo8dlU4g=/0x0:7015x4677/2050x1367/cdn0.vox-cdn.com/uploads/chorus_image/image/46369294/RzrFirefly_01_DA.0.0.jpg);">
</div>
my code: 我的代码:
$xpath = new DOMXpath($page_dom);
$image = $xpath->query("//div[@class='p-dynamic-image vox-lazy-load lazy-loaded']/@data-original")->value;
echo $image . "<br />";
but this isn't returning anything. 但这不返回任何东西。
what am I doing wrong? 我究竟做错了什么?
In fact, it should be: 实际上,应该是:
<?php
$html_string ='<div
class="p-dynamic-image vox-lazy-load lazy-loaded"
data-original="https://cdn2.vox-cdn.com/..." style="...">
</div>';
$dom = new DomDocument();
@$dom->loadHTML($html_string);
$xpath = new DOMXPath($dom);
echo $xpath->query(
'//div[@class="p-dynamic-image vox-lazy-load lazy-loaded"]/@data-original')
->item(0)->value; // https://cdn2.vox-cdn.com/...
Edit: 编辑:
Okay try using this (with query instead of xpath) 好吧,尝试使用它(使用查询而不是xpath)
$xpath = new DOMXpath($page_dom);
$results=$xml->query("//div[@class='p-dynamic-image vox-lazy-load lazy-loaded']/@data-original")->value;
foreach ($results as $image) {
echo $image;
}
Edit again: Note the method you were using before would work for SimpleXML, but for DOM it seems you need to do it within a foreach 再次编辑:请注意,您之前使用的方法适用于SimpleXML,但对于DOM,似乎您需要在foreach中进行操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.