DOMDocument::importNode
(PHP 5, PHP 7)
DOMDocument::importNode — Импортировать узел в текущий документ
Описание
Эта функция возвращает копию импортируемого узла и связывает ее с текущим документом.
Список параметров
-
importedNode
-
Узел для импорта.
-
deep
-
Если установлено значение
true
, этот метод будет рекурсивно импортировать поддерево узлаimportedNode
.Замечание:
Чтобы скопировались атрибуты узла,
deep
должен быть установлен вtrue
.
Возвращаемые значения
Скопированный узел или false
, если он не может быть скопирован.
Ошибки
Если узел не может быть импортирован, будет выброшено исключение DOMException.
Примеры
Пример #1 Пример использования DOMDocument::importNode()
Копирование узлов между документами.
<?php
$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");
// Узел, который будет импортирован в новый документ
$node = $orgdoc->getElementsByTagName("element")->item(0);
// Создание нового документа
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;
// Добавление разметки
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");
echo "Новый документ перед добавлением в него узлов:\n";
echo $newdoc->saveXML();
// Импорт узла и всех его потомков в документ
$node = $newdoc->importNode($node, true);
// И затем добавление его в корневой узел
$newdoc->documentElement->appendChild($node);
echo "\nНовый документ после добавления в него узлов:\n";
echo $newdoc->saveXML();
?>
Результат выполнения данного примера:
Новый документ перед добавлением в него узлов: <?xml version="1.0"?> <root> <someelement>text in some element</someelement> </root> Новый документ после добавления в него узлов: <?xml version="1.0"?> <root> <someelement>text in some element</someelement> <element> <child>text in child</child> </element> </root>