我正在疯狂地寻找,但没有找到解决方案。问题很简单。
假设我有 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。使用简单的 HTML DOM 解析器,我似乎无法让它工作。
这是我尝试过的:
foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] = $item->find('.subclass', 0)->plaintext;
}
问题是,随着
find("[class=class1], [class=class2]")
它正在找到所有这些,因为逗号就像一个 OR,如果我离开逗号,它会在 class1 中寻找嵌套的 class2。我只是在寻找一个和...
编辑
感谢 19greg96 我发现
div[class=class1 class2]
有效,问题是它按顺序查找这两个。假设我有
<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]
与那个例子一起工作?