Я искал как сумасшедший и не нашел решения. Проблема проста.
Скажем, у меня есть 3 DIV:
<div class="class1">
<div class="subclass"> TEXT1 </div>
</div>
<div class="class2">
<div class="subclass"> TEXT2 </div>
</div>
<div class="class1 class2">
<div class="subclass"> TEXT3 </div>
</div>
Итак, очень просто. Я просто хочу найти TEXT3, который имеет ОБА class1 и class2. Используя Simple HTML DOM Parser, я не могу заставить его работать.
Вот что я пробовал:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
Проблема в том, что с
find("[class=class1], [class=class2]")
он находит их все, так как запятая похожа на ИЛИ, если я оставлю запятую, он ищет вложенный class2 внутри class1. Я просто ищу И...
ИЗМЕНИТЬ
Благодаря 19greg96 я узнал, что
div[class=class1 class2]
работает, проблема в том, что он ищет именно эти два в таком порядке. скажем, у меня есть
<div class="class1 class2">
<div class="subclass"> TEXT3 </div>
</div>
тогда это работает, и если у меня есть
<div class="class1 class2 class3">
<div class="subclass"> TEXT3 </div>
</div>
он работает, когда я ставлю звездочку, так как он ищет подстроку:
div[class*=class1 class2]
ПРОБЛЕМА
Знаю только, что класс1 и класс3 есть, но может и другие и в случайном порядке. Это все еще не работает. Любая идея, как просто искать A и B в любом случайном порядке? Так что
div[class=class1 class3]
работает с этим примером?