В этой главе мы обсудим операцию узла клонирования на объекте XML DOM. Операция клонирования узла используется для создания дубликата копии указанного узла. cloneNode () используется для этой операции.
cloneNode ()
Этот метод возвращает дубликат этого узла, то есть служит общим конструктором копирования для узлов. Дублированный узел не имеет родителя (parentNode имеет значение null) и пользовательских данных.
Синтаксис
Метод cloneNode () имеет следующий синтаксис —
Node cloneNode(boolean deep)
-
deep — если true, рекурсивно клонирует поддерево под указанным узлом; если ложь, клонировать только сам узел (и его атрибуты, если это элемент).
-
Этот метод возвращает дубликат узла.
deep — если true, рекурсивно клонирует поддерево под указанным узлом; если ложь, клонировать только сам узел (и его атрибуты, если это элемент).
Этот метод возвращает дубликат узла.
пример
В следующем примере (clonenode_example.htm) анализируется документ XML ( node.xml ) в объект XML DOM и создается глубокая копия первого элемента Employee .
<!DOCTYPE html> <html> <head> <script> function loadXMLDoc(filename) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else // code for IE5 and IE6 { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",filename,false); xhttp.send(); return xhttp.responseXML; } </script> </head> <body> <script> xmlDoc = loadXMLDoc("/dom/node.xml"); x = xmlDoc.getElementsByTagName('Employee')[0]; clone_node = x.cloneNode(true); xmlDoc.documentElement.appendChild(clone_node); firstname = xmlDoc.getElementsByTagName("FirstName"); lastname = xmlDoc.getElementsByTagName("LastName"); contact = xmlDoc.getElementsByTagName("ContactNo"); email = xmlDoc.getElementsByTagName("Email"); for (i = 0;i < firstname.length;i++) { document.write(firstname[i].childNodes[0].nodeValue+' '+lastname[i].childNodes[0].nodeValue+', '+contact[i].childNodes[0].nodeValue+', '+email[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
Как вы можете видеть в приведенном выше примере, мы установили для параметра cloneNode () значение true . Следовательно, каждый дочерний элемент в элементе Employee копируется или клонируется.
выполнение
Сохраните этот файл как clonenode_example.htm на пути к серверу (этот файл и файл node.xml должны находиться на одном и том же пути на вашем сервере). Мы получим вывод, как показано ниже —
Tanmay Patil, 1234567890, [email protected] Taniya Mishra, 1234667898, [email protected] Tanisha Sharma, 1234562350, [email protected] Tanmay Patil, 1234567890, [email protected]
Вы заметите, что первый элемент Employee полностью клонирован.