запрос xpath не возвращает данные

я пытаюсь выяснить, как получить атрибут из определенного div на веб-странице, но мой запрос ничего не возвращает. Я предполагаю, что мой запрос просто неверен.

я пытаюсь получить Данные оригинал URL из этого 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 />";

но это ничего не возвращает.

Что я делаю неправильно?

1

Решение

На самом деле, это должно быть:

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

Другие решения

Редактировать:

Хорошо, попробуйте использовать это (с запросом вместо 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

0

По вопросам рекламы [email protected]