【问题标题】:How to use Simple HTML Dom to get an adjacent sibling element?如何使用 Simple HTML Dom 获取相邻的兄弟元素?
【发布时间】:2015-06-09 12:50:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • simple html dom 不支持 css 下一个兄弟选择器 (+) 但 this one 支持。

标签: php simple-html-dom


【解决方案1】:

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();

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2012-03-08
    相关资源
    最近更新 更多