php dom редактирует только родительский элемент, а не дочерние элементы

Я пытаюсь редактировать значение узла только родительского элемента (например, hold1), а не дочерних элементов. Приведенный ниже код успешно позволяет мне редактировать дочерние элементы, но когда я редактирую родительский элемент, он полностью удаляет дочерние элементы. Пожалуйста помоги.

$file = 'home/aa.php';
$doc = new DOMdocument();
$doc = loadHTMLFile($file);
$element = $doc->getElementById('hold1');
$element->nodeValue= "THIS IS SPARTA";
$myfile = fopen($file,'w+'); // i have tried c, c+, a+, r+ , none helps
$html = fwrite($myfile,$doc->saveHTML());

//aa.php
<div id = "hold1">
<div id = "hold2"> Tom is Cruise </div>
<div id = "hold3"> Ben Stiller parody </div>
</div>

0

Решение

Установив nodeValue, вы устанавливаете все тело элемента. Вы должны четко указать, где вы хотите разместить новый текстовый узел. Пример:

$element = $doc->getElementById('hold1');
$element->insertBefore($doc->createTextNode("THIS IS SPARTA"), $element->firstChild);

вставляет это в начале

<div id="hold1">THIS IS SPARTA
<div id="hold2"> Tom is Cruise </div>
<div id="hold3"> Ben Stiller parody </div>
</div>
1

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

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

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