J'utilise DOMCrawler pour sélectionner du HTML basé sur un sélecteur CSS, comme ceci;Utilisation de Symfony Crawler pour sélectionner le bloc HTML
$selector = '#content';
$html = $my_fetched_html;
$crawler = new Crawler($html);
$crawler = $crawler->filter($selector);
Tout cela est bon et si j'itérer les éléments de chenilles $, il confirme que le sélecteur a travaillé, à savoir, je reçois seulement div et non le code HTML complet. Mais, quand il s'agit de sauver le HTML j'ai des problèmes, parce que faire quelque chose comme ça;
$html = '';
foreach ($crawler as $domElement) {
$html.= $domElement->ownerDocument->saveHTML();
}
echo $html;
(Comme l'a démontré in this question)
Je reçois la structure complète à nouveau et je suppose parce que son $ ownerDocument est toujours le document de crawler $ (non sélectionné) d'origine. Donc, ce dont j'ai besoin, c'est de pouvoir instancier un nouveau DomDocument (peut-être?) En y ajoutant mon Element, puis saveHTML() à partir de là. Je pense?
Pseudo-code;
$doc = new DomDocument
foreach ($crawler as $domElement) {
$doc->addChild($domElement);
}
$new_html = $doc->saveHTML();
J'aimerais toute aide, son départ pour faire ma tête.
Belle! Je vous remercie. – Christian