Мне нужно добавить дочерние элементы к родительским узлам, но родительский узел должен быть div
.Как добавить дочерний элемент в родительский узел div?
Мне нужно проверить, если родительский узел не div
, тогда проверьте родительский узел родителя, пока я не получу div-узел. Как это сделать?
XML файл
<div class="parent">
<div class="boxed-text">box text1</div>
<li>
<div class="boxed-text">box text2</div>
<p>para</p>
</li>
<div class="boxed-text">box text3</div>
<p>para</p>
</div>
Ожидаемый результат (должен приложить к ДИВЫМ родительскому узлу)
<div class="parent">
<li>
<p>para</p>
</li>
<p>para</p>
<div class="boxed-text">box text1</div>
<div class="boxed-text">box text2</div>
<div class="boxed-text">box text3</div>
</div>
Но у меня есть выход, как показано ниже: (т.е. родительского узел в штучной упаковке -text 2 является тегом li
, поэтому он добавляется там вместо родительского узла div. Как получить только родительский узел div для добавления дочерних узлов?)
<div class="parent">
<li>
<p>para</p>
<div class="boxed-text">box text2</div>
</li>
<p>para</p>
<div class="boxed-text">box text1</div>
<div class="boxed-text">box text3</div>
</div>
мой код:
$dom = new DOMDocument;
$dom->load("new_test.xml", LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xp = new DOMXPath($dom);
$xp->registerNamespace("php", "http://php.net/xpath");
$div = $xp->query("//div[@class='boxed-text']");
foreach($div as $divv) {
$divv->parentNode->appendChild($divv);
}
$r = $dom->saveXML();
Отлично! Огромное спасибо. Я попробовал второй способ, он работает. – Learning