Метод XML DOM cloneNode()

Референтное руководство по объекту Node

Определение и использование

Метод cloneNode() может создать точную копию указанного узла.

Этот метод может вернуть скопированный узел.

Синтаксис:

nodeObject.cloneNode(include_all)
Параметр Описание
include_all Обязателен. Если логический параметр установлен в true, то клонируемый узел клонирует все подузлы исходного узла.

Возвратное значение

Копия текущего узла

Объяснение

Этот метод копирует и возвращает копию узла, который его вызвал. Если передан параметр true, он также рекурсивно копирует все потомки текущего узла. В противном случае, он копирует только текущий узел.

Возвращаемый узел не принадлежит дереву документа, его свойство parentNode равно null.

Когда копируется узел Element, все его атрибуты также копируются. Но要注意, функции слушателей событий, зарегистрированные на текущем узле, не копируются.

Пример

Во всех примерах мы будем использовать файл XML books.xml, а также функции JavaScript loadXMLDoc().

Ниже приведен фрагмент кода, который клонирует первый узел <book> и добавляет его в конец списка узлов:

xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName('book')[0];
var cloneNode=x.cloneNode(true);
xmlDoc.documentElement.appendChild(cloneNode);
//Вывод всех заголовков
var y=xmlDoc.getElementsByTagName("title");
for (i=0; i<y.length; i++)
  {
  document.write(y[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Вывод:

Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Everyday Italian

Референтное руководство по объекту Node