如何使用Simple HTML Dom 获取相邻的兄弟元素?

How to use Simple HTML Dom to get an adjacent sibling element?

我正在使用简单 HTML Dom 解析器从 HTML 字符串中获取一个元素,使用它的 class 名称,例如:

foreach ($html->find('div[class=news-div]')) {
    $news = $news-div;
}

但我还需要获取两个元素(一个是 span,另一个是 a),它们恰好出现在 $news 之前,但它们没有 id 可以预测,因为它是动态计算的,并且它们没有唯一的 class 名称。

如何提取出现在 $news-div 之前的两个相邻元素?

SimpleHTML 有 prev_siblingnext_sibling 方法

$elems = $html->find('div[class=news-div]');

foreach ( $elems as $news ) {

    $prev_span = $news->prev_sibling();

    $prev_a    = $prev_span->prev_sibling();

}