XML DOM - Klonknoten
In diesem Kapitel werden wir die discucss Clonen Knoten Operation auf XML DOM - Objekt. Die Klonknotenoperation wird verwendet, um eine doppelte Kopie des angegebenen Knotens zu erstellen. Für diesen Vorgang wird cloneNode () verwendet.
cloneNode ()
Diese Methode gibt ein Duplikat dieses Knotens zurück, dh es dient als generischer Kopierkonstruktor für Knoten. Der doppelte Knoten hat kein übergeordnetes Element (parentNode ist null) und keine Benutzerdaten.
Syntax
Die cloneNode () -Methode hat die folgende Syntax:
Node cloneNode(boolean deep)
deep - Wenn true, wird der Teilbaum unter dem angegebenen Knoten rekursiv geklont. Wenn false, klonen Sie nur den Knoten selbst (und seine Attribute, wenn es sich um ein Element handelt).
Diese Methode gibt den doppelten Knoten zurück.
Beispiel
Im folgenden Beispiel (clonenode_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und eine tiefe Kopie des ersten Employee- Elements erstellt.
<!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>
Wie Sie im obigen Beispiel sehen können, haben wir den Parameter cloneNode () auf true gesetzt . Daher wird jedes untergeordnete Element unter dem Employee- Element kopiert oder geklont.
Ausführung
Speichern Sie diese Datei als clonenode_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server im selben Pfad befinden). Wir erhalten die Ausgabe wie unten gezeigt -
Tanmay Patil, 1234567890, [email protected]
Taniya Mishra, 1234667898, [email protected]
Tanisha Sharma, 1234562350, [email protected]
Tanmay Patil, 1234567890, [email protected]
Sie werden feststellen, dass das erste Employee- Element vollständig geklont ist.