PHP Simple HTML DOM-Parser: Wählen Sie nur die DIVs mit mehreren Klassen

War ich auf der Suche wie ein verrückter und keine Lösung gefunden. Das problem ist einfach.

Sagen wir, ich habe 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>

So, sehr einfach. Ich möchte nur zu finden, die TEXT3, die BEIDE class1 und class2. Mit Simple HTML DOM-Parser, ich kann nicht scheinen, um es zu arbeiten.

Hier ist, was ich versucht habe:

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 ist die Suche nach allen von Ihnen, wie das Komma ist wie ein ODER, wenn ich die Komma, sieht es für verschachtelte class2 innen class1. Ich bin gerade auf der Suche für ein-UND...

BEARBEITEN

Dank 19greg96 fand ich heraus, dass

div[class=class1 class2]

funktioniert, das problem ist, dass es sich für genau diese zwei-in dieser Reihenfolge. Sagen wir, ich habe

<div class="class1 class2">
  <div class="subclass"> TEXT3 </div>
</div>

dann funktioniert es, und wenn ich

<div class="class1 class2 class3">
  <div class="subclass"> TEXT3 </div>
</div>

funktioniert es, wenn ich ein asterix, wie sieht es für die substring:

div[class*=class1 class2]

PROBLEM

Ich weiß nur, dass die class1 und class3 ist es, aber vielleicht andere und in zufälliger Reihenfolge. Das immer noch nicht funktioniert. Keine Idee, wie suchen nur für A & B in einer zufälligen Reihenfolge? So, dass

div[class=class1 class3]

funktioniert mit diesem Beispiel?

  • Sie wollen insbesondere Elemente mit den beiden .class1 und .class2, oder Elemente mit 2 oder mehr Klasse?
  • nur Elemente mit beiden .class1 und .class2
  • bearbeitet: problem nur teilweise gelöst
InformationsquelleAutor Chris | 2013-01-10
Schreibe einen Kommentar