PHP Simple HTML DOM Parser: Seleccione solo DIVs con múltiples clases
Estaba buscando como loca y no encontré solución. El problema es simple.
Digamos que tengo 3 DIVs:
<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>
Así que, muy simple. Solo quiero encontrar el TEXT3, que tiene tanto class1 como class2. Usando Simple HTML DOM Parser, parece que no consigo que funcione.
Esto es lo que intenté:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
El problema es, con
find("[class=class1], [class=class2]")
los está encontrando a todos, ya que la coma es como un OR, si dejo la coma, está buscando class2 anidado dentro de class1. Sólo estoy buscando un AND ...
EDITARGracias a 19greg96 descubrí que
div[class=class1 class2]
funciona, el problema es que busca exactamente esos dos en ese orden. Digamos que tengo
<div class="class1 class2">
<div class="subclass"> TEXT3 </div>
</div>
entonces funciona, y si tengo
<div class="class1 class2 class3">
<div class="subclass"> TEXT3 </div>
</div>
funciona cuando coloco un asterisco, ya que busca la subcadena:
div[class*=class1 class2]
PROBLEMA
Sé que solo class1 y class3 están ahí, pero tal vez otros y en orden aleatorio. Eso todavía no funciona. ¿Alguna idea de cómo buscar A & B en un orden aleatorio? Así que eso
div[class=class1 class3]
trabaja con ese ejemplo?