php simple dom parser获取元素的父级

时间:2014-07-02 00:11:54

标签: php jquery html simple-html-dom

我正在尝试在某些DIV上检索img SRC而没有挑剔的类或父母:它们只是在<div class="content_end"></div>之后的页面上存在

我需要从这些scr中检索图像div's我怎么才能只检索这些div而不是页面上所有其他div:

我尝试使用div作为父级查找所有图像但不起作用:

foreach($domParse->find('img') as $element) 
       echo $element->parent('div')->src;

我知道在jquery中有一个nextAll选择器,所以我可以做类似的事情:

$('.content_end').nextAll('div');

将我需要的内容返回给我:如何在Simple Dom Parser中执行此操作:

HTML格式

<div class="content_end"> </div>
-------------------------------------------------
<div style="postion:relative; height:90px;">
<img src="../">
</div>
<div style="postion:relative; height:90px;">
<img src="../">
</div>
---------------------------------------------

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是next_sibling()

foreach($domParse->find('div.content_end') as $element) 
   echo $element->next_sibling()->find("img")[0]->src;

答案 1 :(得分:1)

由于您定位的<img>代码中包含没有类或ID的父div,因此只需使用带有父!class 属性过滤器的属性过滤器< / strong>即可。考虑这个例子:

include 'simple_html_dom.php';
$html_string = '
<div class="content_end"></div>
<div style="postion:relative; height:90px;">
    <img src="http://www.google.com/image1.jpg" />
</div>
<div style="postion:relative; height:90px;">
    <img src="http://www.stackoverflow.com/image2.png" />
</div>'; // your sample html structure
$domParse = str_get_html($html_string);

// div which has no class with img tag children
foreach($domParse->find('div[!class] img') as $img) {
    echo $img->src . '<br/>';
}

应按照例子收益:

http://www.google.com/image1.jpg
http://www.stackoverflow.com/image2.png