Если maindiv из getElementsByTagName()
, то $maindiv->item(0)
- это div с id = maindiv.Итак, ваш код работает правильно, потому что вы просите его поместить новый div перед maindiv.
Чтобы он работал так, как вы хотите, вам нужно получить детей maindiv:
$dom = new DOMDocument();
$dom->load($yoursrc);
$maindiv = $dom->getElementById('maindiv');
$items = $maindiv->getElementsByTagName('DIV');
$items->item(0)->parentNode->insertBefore($div, $items->item(0));
Обратите внимание, что если у вас нет DTD, PHP ничего не возвращает с getElementsById.Чтобы getElementsById работал, вам нужно иметь DTD или указать, какие атрибуты являются идентификаторами:
foreach ($dom->getElementsByTagName('DIV') as $node) {
$node->setIdAttribute('id', true);
}