猿问

在 simple_html_dom 中,如何在 div.classname 中找到第一级

我正在使用 simple_html_dom

我在 php var $text 中有一些 html:


<div class="aClass">

  <div>

    ...some html

    <div class="anotherClass">

      ..more html

    </div>

  </div>

  <div>

    ...some html

    <div class="anotherClass">

      ..more html

    </div>

  </div>

</div>

我知道我可以选择最外面的 div 相反, $text->find("div.aClass")

我想选择该 div 中的所有第一级 div,这样我就可以将它们作为foreach循环的一部分进行处理

,例如:


foreach ($text->find("div.aClass div") as $myDiv) {

// do stuff with $myDiv

}

但这似乎选择了所有div,包括那些带有class="anotherClass"


非常感谢任何帮助 - 谢谢!


交互式爱情
浏览 100回答 1
1回答

杨魅力

您可以使用子组合选择器>,它仅选择父元素的直接子元素。div.aClass > div例如$html = <<<HTML<div class="aClass">&nbsp; <div>&nbsp; &nbsp; ...some html&nbsp; &nbsp; <div class="anotherClass">&nbsp; &nbsp; &nbsp; ..more html&nbsp; &nbsp; </div>&nbsp; </div>&nbsp; <div>&nbsp; &nbsp; ...some html&nbsp; &nbsp; <div class="anotherClass">&nbsp; &nbsp; &nbsp; ..more html&nbsp; &nbsp; </div>&nbsp; </div></div>HTML;$text = str_get_html($html);foreach ($text->find("div.aClass > div") as $myDiv) {&nbsp; &nbsp; echo $myDiv->innertext() . PHP_EOL;}输出&nbsp;...some html&nbsp; &nbsp; &nbsp;<div class="anotherClass">&nbsp; &nbsp; &nbsp; &nbsp;..more html&nbsp; &nbsp; &nbsp;</div>&nbsp; &nbsp;&nbsp;...some html&nbsp; &nbsp; &nbsp;<div class="anotherClass">&nbsp; &nbsp; &nbsp; &nbsp;..more html&nbsp; &nbsp; &nbsp;</div>&nbsp; &nbsp;
随时随地看视频慕课网APP
我要回答