php - 使用 Symfony DomCrawler 获取元素的原始 HTML 代码

标签 php symfony goutte

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>

最佳答案

好吧,有一种方法很丑陋——遍历它的节点:

$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

关于php - 使用 Symfony DomCrawler 获取元素的原始 HTML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133541/

相关文章:

javascript - 如何延迟或异步加载此 WordPress javascript 代码段以最后加载以加快页面加载时间?

php - 如何获取表单的名称 - Symfony2

symfony - 更新我的架构时出现 Doctrine 异常 "Data too long for column"

php - 如何从 PHP 脚本运行 PHPUnit?

php - 稍后执行脚本

php - 为什么这个 MySQL 查询在 PHP 代码中不起作用?

php - 从页面打开多个 javascript 链接

php - 如果数据由 Javascript 加载,如何使用 php Goutte 和 Guzzle 进行爬取?

php - 站点地图 PHP Mysql Split 45000

symfony - WebPack Encore 中缺少带有 CKEditor 的工具栏项目