PHP Simple HTML DOM Parser: Wählen Sie nur Divs mit mehreren Klassen aus
Ich suchte wie verrückt und fand keine Lösung. Das Problem ist einfach.
Angenommen, ich habe 3 Tauchgänge:
<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>
Also sehr einfach. Ich möchte nur den TEXT3 finden, der BEIDE Klassen 1 und 2 hat. Mit Simple HTML DOM Parser kann ich es scheinbar nicht zum Laufen bringen.
Folgendes habe ich versucht:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
Das Problem ist, mit
find("[class=class1], [class=class2]")
Es findet alle von ihnen, da das Komma wie ein ODER ist. Wenn ich das Komma lasse, sucht es nach verschachtelter Klasse2 in Klasse1. Ich suche nur ein UND ...
BEARBEITENDank 19greg96 habe ich das herausgefunden
div[class=class1 class2]
funktioniert, das Problem ist, dass es genau diese beiden in dieser Reihenfolge sucht. Sagen wir, ich habe
<div class="class1 class2">
<div class="subclass"> TEXT3 </div>
</div>
dann klappt es und wenn ja
<div class="class1 class2 class3">
<div class="subclass"> TEXT3 </div>
</div>
es funktioniert, wenn ich ein Sternchen setze, wie es nach dem Teilstring aussieht:
div[class*=class1 class2]
PROBLEM
Ich weiß nur, dass class1 und class3 da sind, aber vielleicht andere und in zufälliger Reihenfolge. Das geht immer noch nicht. Irgendeine Idee, wie man einfach in zufälliger Reihenfolge nach A & B sucht? Damit
div[class=class1 class3]
arbeitet mit diesem Beispiel?