2013-04-22 98 views
1

我想通過簡單的html dom解析器遍歷這個下面的html,但沒有進入下一個節點。PHP:簡單的DOM解析器如何迭代這個html

<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> 

我想爲ul.products電網每個L1和迭代,但我沒有得到下一個UL標籤 我已經使用這個代碼呢。

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; 
    } 
} 

任何機構有任何想法,請幫助整理出來。由於

+0

我使用simplehtmldom.sourceforge.net簡單的HTML DOM解析器 – ravisoni 2013-04-22 17:30:18

+0

是否可以提供正確的URL,以便我們可以幫助您,因爲我們可以使用您提供的示例作爲對象 – 2013-04-22 18:03:38

回答

4

你它過於複雜:

foreach ($html->find('div.category-products li a') as $a){ 
    // do something with $a 
} 
+0

您節省了我的時間謝謝:-) – ravisoni 2013-04-23 05:45:47

0

你可以試試這個

$url='http://www.somesite.com'; 
$html = file_get_html($url); 
if(is_object($html)){ 
    foreach ($html->find('div.category-products .products-grid') as $ul){ 
     // To iterate al li tags use following 
     foreach ($ul->find('li') as $li) echo $li. '<br />'; 
     // To iterate al a tags use following 
     foreach ($ul->find('li a') as $a) echo $a. '<br />'; 
    } 
} 
相關問題