duanpai9945 2013-04-22 17:21
浏览 58
已采纳

PHP:Simple DOM Parser如何迭代这个html

I trying to iterate over this following html using simple html dom parser but not getting to next node.

<div class="category-products">
<ul class="products-grid">
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
</ul>
<ul class="products-grid">
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
</ul>
<ul class="products-grid">
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
    <li><a href="http://someurl.com">Text</a></li>
</ul>
</div>

I want to iterate over each li and a for ul.products-grid but i am not getting to next ul tag I have used this code yet.

require_once('simple_html_dom.php');
set_time_limit(0);
ini_set('memory_limit', '1024M');
$url='http://www.somesite.com';
$html = file_get_html($url);

if(is_object($html)){
    foreach ( $html->find('div.category-products') as $elem){
        $data = $elem->innertext;
        $strdata = str_get_html($data);
        foreach ($strdata->find('ul[class="products-grid"]') as $ul) {
                //not getting how to iterate over next ul tags
        }
        die;
    }
}

Any body having any idea please help to sort it out. Thanks

  • 写回答

2条回答 默认 最新

  • doumengbai2031 2013-04-22 23:27
    关注

    You're overcomplicating it:

    foreach ( $html->find('div.category-products li a') as $a){
      // do something with $a
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序