【问题标题】:Get raw HTML code of element with Symfony DomCrawler使用 Symfony DomCrawler 获取元素的原始 HTML 代码
【发布时间】:2013-02-14 12:37:47
【问题描述】:

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('#product')->text();

返回:

some text some text2

但我需要:

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

【问题讨论】:

    标签: php symfony goutte


    【解决方案1】:

    嗯,有一种丑陋的方法——通过迭代它的节点:

    $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

    【讨论】:

    • $html 包含页面的完整代码。我需要获取元素的代码。
    • @damour 所以只需遍历过滤后的内容 - 更新我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多