PHP Simple HTML DOM Parser: Wybierz tylko DIV z wieloma klasami
Szukałem jak szalony i nie znalazłem rozwiązania. Problem jest prosty.
Powiedzmy, że mam 3 DIVy:
<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>
Tak, bardzo proste. Chcę tylko znaleźć TEXT3, który ma OBIEKT klasy1 i klasy2. Korzystając z prostego parsera DOM HTML, nie mogę go uruchomić.
Oto co próbowałem:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
Problem polega na tym
find("[class=class1], [class=class2]")
Znajduje je wszystkie, ponieważ przecinek jest jak OR, jeśli zostawię przecinek, szuka zagnieżdżonej klasy 2 wewnątrz klasy1. Po prostu szukam AND ...
EDYTOWAĆDzięki 19greg96 dowiedziałem się o tym
div[class=class1 class2]
działa, problem polega na tym, że szuka dokładnie tych dwóch w tej kolejności. Powiedzmy, że mam
<div class="class1 class2">
<div class="subclass"> TEXT3 </div>
</div>
to działa i jeśli mam
<div class="class1 class2 class3">
<div class="subclass"> TEXT3 </div>
</div>
działa, gdy umieściłem gwiazdkę, ponieważ szuka podłańcucha:
div[class*=class1 class2]
PROBLEM
Wiem tylko, że jest tam klasa 1 i klasa 3, ale może inne i w losowej kolejności. To wciąż nie działa. Masz pomysł, jak po prostu szukać A i B w dowolnej kolejności? Po to aby
div[class=class1 class3]
działa z tym przykładem?