Symfony DomCrawler как вставить html после некоторого элемента?

HTML-контент

<div class = "card mb-3 template">
    <div class = "card-body">
        <div class = "row mt-3">
            <div class = "col-sm-4">
                <h4>This is title</h4>
            </div>
            <div class = "col-sm-8 text-right">
                <button>Close</button>
            </div>
        </div>
    </div>
</div>

Я хочу вставить элемент div после <h4>, например

<div class = "col-sm-4">
    <h4>This is title</h4>
    <div class = "status"></div>
</div>

В jQuery довольно просто

$('<div class = "status"></div>').insertAfter($('.template').find('h4'));

Но как я могу это сделать в DomCrawler?

$crawler = new \Symfony\Component\DomCrawler\Crawler($html);
$nodes = $crawler->filter('.template');
foreach ($nodes as $node) { // there are multiple template
    // so how to insert the div element after h4
}

Проверить symfony.com/doc/current/components/dom_crawler.html

Mohammad 31.10.2018 09:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
1 216
1

Ответы 1

Symfony DomCrawler - это просто причудливая оболочка для PHP, встроенного в класс DOMDocument. Используя getNode, вы получите объект DOMNode элемента, который вам понадобится для выполнения метода insertAfter.

$crawler = new \Symfony\Component\DomCrawler\Crawler($html);
$domDocument = $this->crawler->getNode(0)->parentNode; //this is how you get domDocument

//creating div
$div = $domDocument->createElement('div');
$div->setAttribute('class', 'status');

//adding div after h4 tag
$h4 = $crawler->filter('h4')->getNode(0);
$h4->parentNode->insertBefore( $div, $h4->nextSibling);

Другие вопросы по теме