DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElementСоздаёт новый узел элемента

Описание

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

Эта функция создаёт экземпляр класса DOMElement. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

localName

Имя тега элемента.

value

Значение элемента. По умолчанию будет создан пустой элемент. Значение также может быть установлено позднее путём присваивания при прямом обращении к свойству DOMElement::$nodeValue.

Значение будет установлено дословно, за исключением символов < и >, которые будут экранированы. Обратите внимание, что символ & нужно экранировать самому, иначе он будет рассматриваться как начало ссылки на сущность. Символ кавчек " также не будет экранирован.

Возвращаемые значения

Возвращает новый объект класса DOMElement или false в случае возникновения ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если параметр localName содержит недопустимые символы.

Примеры

Пример #1 Создание нового элемента и вставка его в качестве корневого

<?php

$dom
= new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'Это корневой элемент!');

// Вставляем новый элемент как корень (потомок документа)
$dom->appendChild($element);

echo
$dom->saveXML();
?>

Результат выполнения приведённого примера:

<?xml version="1.0" encoding="utf-8"?>
<test>Это корневой элемент!</test>

Пример #2 Передача текста, содержащего неэкранированный & в value

<?php
$dom
= new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'я & ты');
$dom->appendChild($element);
echo
$dom->saveXML();
?>

Вывод приведённого примера будет похож на:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Примечания

Замечание:

Значение value не будет экранировано. Используйте функцию DOMDocument::createTextNode() для создания текстового узла с поддержкой экранирования.

Смотрите также