Я создаю элемент с этим кодом. Установка идентификатора, как это должно быть установлено. (Нужна ли мне проверка?):
$sectionContainer = $dom->createElement('div', $section);
$sectionContainer->setAttribute("id", $section);
$sectionContainer->setIdAttribute("id", TRUE);
$dom->validateOnParse = true;
$divup->parentNode->insertBefore($sectionContainer, $divup);echo 'avant'."</br>";
echo $section;
print_r($dom->getElementById($section)->getAttribute('id'));
echo 'apres'."</br>";
Но я получаю это:
Неустранимая ошибка: необработанная ошибка: вызов функции-члена getAttribute () со значением NULL
Так что он не может найти элемент, который я только что создал, почему?
Привет всем,
проблема не с $dom->validateOnParse = true;
,
Ваша ошибка происходит из этой строки кода — $sectionContainer->setIdAttribute("id", TRUE);
,
Если вы хотите установить идентификатор атрибута DOMElement лайк <div id="myId"></div>
вам нужно только $domElement->setAttribute("id", "myId");
который у вас уже есть.
DOMElement :: setIdAttribute фактически указывает, что этот атрибут является уникальным идентификатором, который не имеет ничего общего с id="myId"
атрибут
(PHP 5, PHP 7)
DOMElement :: setIdAttribute — объявляет атрибут
указывается по имени, чтобы иметь тип IDОписание
public void DOMElement :: setIdAttribute (строка $ name, bool $ isId)
Объявляет, что имя атрибута имеет тип ID.
Ну не очень понятно что это тип ID, но я могу сказать, что это нечто отличное от id
атрибут HTML-элемента.
Проверьте демо ВОТ
Других решений пока нет …