簡體   English   中英

xpath查詢未返回數據

[英]xpath query not returning data

我試圖弄清楚如何從網頁上的特定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>

我的代碼:

$xpath = new DOMXpath($page_dom);
$image = $xpath->query("//div[@class='p-dynamic-image vox-lazy-load lazy-loaded']/@data-original")->value;
echo $image . "<br />";

但這不返回任何東西。

我究竟做錯了什么?

實際上,應該是:

<?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/...

編輯:

好吧,嘗試使用它(使用查詢而不是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;

 }

再次編輯:請注意,您之前使用的方法適用於SimpleXML,但對於DOM,似乎您需要在foreach中進行操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM