0
Вот то, что я через DOM (я удалил содержимое):CURL: Получить элементы по имени класса
<ul class="toggle-block">
<li>
<h4 class="chip ui-header rounded-5 act-select toggle-active" ></h4>
<div class="inner rounded-5 act-block">
<div class="inlineBlock"></div>
<div class="inlineBlock"></div>
<div></div>
<h5></h5>
<div class="inlineBlock"></div>
<div class="inlineBlock"></div>
</div>
</li>
</ul>
Мне нужно, чтобы каждый контент, расположенный в каждом ДИВОЙ и h5 из act-блок главный div.
Я начал с этим кодом:
$xpath = new DOMXPath($dom);
$els = $xpath->query('//ul[@class="toggle-block"]/li/div');
Но теперь я не знаю, что делать. Есть идеи ?
EDIT 1:
Я сделал тест с этим, и это работает для первого узла ...
$xpath = new DOMXPath($dom);
$actblock = $xpath->query("//div[contains(concat(' ',normalize-space(@class),' '),' act-block ')]");
$els = $xpath->query('./div | ./h5', $actblock->item(0));
$el = $els->item(0)->nodeValue;
echo $el;
... но это не работает для следующих из них:
$xpath = new DOMXPath($dom);
$actblock = $xpath->query("//div[contains(concat(' ',normalize-space(@class),' '),' act-block ')]");
$els = $xpath->query('./div | ./h5', $actblock->item(0));
$el = $els->item(1)->nodeValue;
echo $el;
Я пробовал решение. Для первого узла это нормально, но не следующие. Я редактировал свой пост. –
@SergentPepper Что значит «для первого узла это нормально»? В моем примере я предполагаю, что есть только один div с классом 'act-block', это неправильно? – idmean
Да, есть только один блок действий. О узлах я имел в виду каждый div/h5 внутри act-block: $ els-> item (0) -> nodeValue, $ els-> item (1) -> nodeValue, $ els-> item (2) -> nodeValue, и т.д. –