私は狂ったように探していましたが、解決策が見つかりませんでした。問題は単純です。
私が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>
とても簡単です。class1とclass2の両方を持つTEXT3を見つけたいだけです。Simple HTML DOM Parserを使用すると、動作させることができないようです。
これが私が試したことです:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
問題は、
find("[class=class1], [class=class2]")
カンマはORのようなものなので、すべてを検索します。カンマを残すと、class1内にネストされたclass2が検索されます。私はちょうどANDを探しています...
編集
19greg96のおかげで私はそれを見つけました
div[class=class1 class2]
動作しますが、問題は、この2つをこの順序で正確に検索することです。私が持っているとしましょう
<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]
問題
私はclass1とclass3がそこにあることだけを知っていますが、おそらく他のものとランダムな順序です。それでも機能しません。AとBをランダムな順序で探す方法はありますか?となることによって
div[class=class1 class3]
その例で動作しますか?