Symfony 2 domCrawler, как получить все дочерние элементы <body>
Может быть, это глупый вопрос, но мне нужно получить объект со всеми узлами HTML с выбранной HTML-страницы. Я должен сделать все узлы выбираемыми, особенно открывающие теги. Если кто-нибудь знает шаблон двигателя от Typo3 Templavoila; Я думаю, что это подходит лучше всего, но я бы хотел восстановить его сам, но у меня нет идеи, как получить все открывающие теги в объекте.
Если кто-то может нажать некоторые детали, на самом деле, я тестирую с помощью domCrawler, как это, но это немного сбивает с толку....
foreach ($crawler as $domElement) {
foreach ($domElement as $test){
var_dump($test->nodeName);
}
var_dump($domElement);
$html .= $domElement->ownerDocument->saveHTML($domElement);
}
Поэтому после некоторого исследования я использую HTMLPageDom и использую его следующим образом:
$css= new HtmlPage();
$css = new HtmlPage($head);
$cssNew = $css->filter('link')->each(function ($node) {
$node= $node->attr('href');
return $node;
});
Так что это работает более или менее, но я думаю, что я что-то не так понял. Как я могу добавить данные в $node->attr('href)? С:
$node->attr('href')->append('data in front of linkuri');
2 ответа
Вы можете попробовать таким образом:
/.../
$values = $crawler->filterXpath('//body')->each(function ($node) {
return $node->html();
});
/.../
РЕШЕНИЕ:
Хорошо, по крайней мере, я думал слишком усталым:)
Это так просто:
$body->filter('img')->setAttribute('src', $this->absPath.$bodySource->filter('img')->attr('src') );