DOMDocument::importNode

(PHP 5, PHP 7)

DOMDocument::importNode Импортировать узел в текущий документ

Описание

public DOMDocument::importNode ( DOMNode $importedNode , bool $deep = false ) : DOMNode

Эта функция возвращает копию импортируемого узла и связывает ее с текущим документом.

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

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($nodetrue);
// И затем добавление его в корневой узел
$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>