Как спарсить определенный div с помощью php?
Нужно спарсить определенный div
<div class="one_home_reserv_ico currency_logo" style="background-image: url(https://vv-obmen.ru/wp-content/uploads/Privatbank.png);"></div>
<div class="one_home_reserv_block">
<div class="one_home_reserv_title">
Приват24 UAH </div>
<div class="one_home_reserv_sum">
13 355.3245 </div>
</div>
<div class="clear"></div>
</div>
Таких div'oв 10ток штук нужно спарсить определенный? Как правильно это реализовать через DOCdocument?
Была попытка так :
$doc = new DomDocument();
@$doc->loadHTML( file_get_contents($link) );
$tag = '<div class="one_home_reserv ">
<div class="one_home_reserv_ico currency_logo" style="background-image: url(https://vv-obmen.ru/wp-content/uploads/Privatbank.png);"></div>
<div class="one_home_reserv_block">
<div class="one_home_reserv_title">
Приват24 UAH </div>
<div class="one_home_reserv_sum">
13 355.3245 </div>
</div>
<div class="clear"></div>
</div>';
$title = $doc->getElementsByTagName($tag)->item(0)->textContent;
но return выдавал "0"
Нужно спарсить значение 13 355.3245
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
В данном фрагменте это будет так:
$doc = new DomDocument();
$html = '<div class="one_home_reserv ">
<div class="one_home_reserv_ico currency_logo" style="background-image: url(https://vv-obmen.ru/wp-content/uploads/Privatbank.png);"></div>
<div class="one_home_reserv_block">
<div class="one_home_reserv_title">
Приват24 UAH
</div>
<div class="one_home_reserv_sum">
13 355.3245
</div>
</div>
<div class="clear"></div>
</div>';
$doc->loadXML($html);
$title = $doc->getElementsByTagName('div')->item(4)->textContent;
echo $title;
Ещё лучше найти див по классу
$doc->loadXML($html);
$finder = new DomXPath($doc);
$classname="one_home_reserv_sum";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
$title = $nodes->item(0)->textContent;
echo $title;