Skip to content

Instantly share code, notes, and snippets.

@jakzal
Last active January 22, 2024 13:18
Show Gist options
  • Save jakzal/8dd52d3df9a49c1e5922 to your computer and use it in GitHub Desktop.
Save jakzal/8dd52d3df9a49c1e5922 to your computer and use it in GitHub Desktop.
Removing nodes with DomCrawler
<?php
<<<CONFIG
packages:
- "symfony/dom-crawler: ~2.3"
- "symfony/css-selector: ~2.3"
CONFIG;
use Symfony\Component\DomCrawler\Crawler;
$html = <<<HTML
<html>
<div class="content">
<h2 class="gamma">Excerpt</h2>
<p>...content html...</p>
</div>
<div class="content">
<h2 class="gamma">Excerpt</h2>
<p>...more content html...</p>
</div>
</html>
HTML;
$crawler = new Crawler($html, 'http://localhost');
// remove all h2 nodes inside .content
$crawler->filter('html .content h2')->each(function (Crawler $crawler) {
foreach ($crawler as $node) {
$node->parentNode->removeChild($node);
}
});
// output .content nodes with h2 removed
$crawler->filter('html .content')->each(function (Crawler $crawler) {
echo $crawler->html();
});
@eduance
Copy link

eduance commented Jan 22, 2024

You're amazing thanks!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment