Как спарсить определенный 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;
→ Ссылка