2013-02-28 85 views
2

HTML結構:如何用domcrowler獲取元素的原始html代碼?

<div id="product"> 
    <p>some text</p> 
    <p>some text2</p> 
    </div>  

我的PHP代碼:

$client = new Client(); 
$crawler = $client->request('GET', $url); 
echo $crawler->filter('#produkt')->text(); 

回報:

some text some text2 

但我需要:

<p>some text</p> 
<p>some text2</p> 

回答

4

那麼,有一個,但醜陋的方式 - 通過迭代在其節點:

$html = ''; 

foreach ($crawler as $domElement) { 
    $html.= $domElement->ownerDocument->saveHTML(); 
} 

或者,你的情況,你應該遍歷過濾元素:

$html = '';  
$product = $crawler->filter('#produkt'); 

foreach ($product as $domElement) { 
    foreach($domElement->childNodes as $node) { 
     $html .= $domElement->ownerDocument->saveHTML($node); 
    } 
} 

documentation

+0

$ HTML頁面包含的全部代碼。我需要獲取元素的代碼。 – 2013-02-28 10:59:13

+1

@damour所以只是迭代過濾的內容 - 更新我的答案 – 2013-02-28 11:03:08

+0

我試過了,仍然返回頁面的代碼。 – 2013-02-28 11:07:01