我正在使用 DOMCrawler 基于 CSS 选择器选择 HTML,如下所示;
$selector = '#content';
$html = $my_fetched_html;
$crawler = new Crawler($html);
$crawler = $crawler->filter($selector);
这一切都很好,如果我遍历 $crawler 元素,它确认选择器工作,即,我只得到一个 div 而不是完整的 html。
但是,当谈到保存 HTML 时,我遇到了问题,因为做这样的事情;
$html = '';
foreach ($crawler as $domElement) {
$html.= $domElement->ownerDocument->saveHTML();
}
echo $html;
我再次获得了完整的结构,我假设它是因为 $ownerDocument 仍然是原始(未选择的)$crawler 文档。
所以,我需要的是能够实例化一个新的 DomDocument(也许?)将我的 Element 添加到它,然后从那里 saveHTML() 。我认为?
伪代码;
$doc = new DomDocument
foreach ($crawler as $domElement) {
$doc->addChild($domElement);
}
$new_html = $doc->saveHTML();
我很想得到任何帮助,它开始让我陷入困境。