遞歸多層次採集
說明
可以在getData()
方法中多次呼叫QueryList來實作遞歸多層擷取。
範例
<?php require 'QueryList/vendor/autoload.php'; use QL\QueryList; //获取每个li里面的h3标签内容,和class为item的元素内容 $html =<<<STR <div id="demo"> <ul> <li> <h3>xxx</h3> <div class="list"> <div class="item">item1</div> <div class="item">item2</div> </div> </li> <li> <h3>xxx2</h3> <div class="list"> <div class="item">item12</div> <div class="item">item22</div> </div> </li> </ul> </div> STR; $data = QueryList::Query($html,array( 'title' => array('h3','text'), 'list' => array('.list','html') ),'#demo li')->getData(function($item){ $item['list'] = QueryList::Query($item['list'],array( 'item' => array('.item','text') ))->data; return $item; }); print_r($data); /** 结果: Array ( [0] => Array ( [title] => xxx [list] => Array ( [0] => Array ( [item] => item1 ) [1] => Array ( [item] => item2 ) ) ) [1] => Array ( [title] => xxx2 [list] => Array ( [0] => Array ( [item] => item12 ) [1] => Array ( [item] => item22 ) ) ) ) */