Как я могу вставить текст до и после узла DOM в PHP?

Я создаю файл ветки из объекта DOM, и я хочу добавить блок кода вокруг определенного div, чтобы в дальнейшем я мог использовать его в ветке.

Итак, HTML-код, который я сейчас имею, выглядит так:

<div>
<div class="class1 class2">
<div>
Some content here
</div>
</div>
</div>

И я хочу изменить его на (форматирование не важно):

<div>
{% block topBar %}
<div class="class1 class2">
<div>
Some content here
</div>
</div>
{% endblock %}
</div>

Итак, я сделал что-то вроде:

$pullURL = "http://example.com";
$dom = new DOMDocument('1.0');
$dom->loadHTMLFile($pullURL);
$domx = new DOMXPath($dom);
$topBar = $domx->query("//*[contains(@class, 'class1 class2')]");
$startTopBlock = $dom->createTextNode("{% block topBar %}");
$topBar[0]->insertBefore($startTopBlock, $topBar[0]);

Тем не менее, я продолжаю получать сообщение

Неустранимая ошибка PHP: необработанное исключение «DOMException» с сообщением «Нет
Обнаружена ошибка »в /path/to/file.php:41

где строка 41 — код вставки перед.

Как лучше всего обернуть объект dom в текст?

0

Решение

Проблема была в том, что мне нужно было вставить его в родительский элемент, поэтому правильный код должен быть:

$topBar[0]->parentNode->insertBefore($startTopBlock, $topBar[0]);

и не

$topBar[0]->insertBefore($startTopBlock, $topBar[0]);

как я хочу вставить этот код в родительский до $ topBar [0]. Все остальное было правильно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector