2013-04-22 2 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 그리드 각 리와를 반복하고 싶지만 난 아직이 코드를 사용한 다음 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

을 내가 그것을 가능 올바른 URL을 제공하는 것입니다 simplehtmldom.sourceforge.net 간단한 HTML DOM 파서 – ravisoni

+0

를 사용하고, 그래서 우리가 당신이 제공 한 예제를 사용할 수 있기 때문에 우리가 당신을 도와 줄 수 있습니다. 객체 –

답변

4

:

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

당신이 내 시간을 저장했습니다. 감사합니다 .-) – ravisoni

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