XML DOM - Düğümü Klonla
Bu bölümde, Klon Düğümü işlemini XML DOM nesnesi üzerinde açıklayacağız . Düğümü klonlama işlemi, belirtilen düğümün yinelenen bir kopyasını oluşturmak için kullanılır. Bu işlem için cloneNode () kullanılır.
cloneNode ()
Bu yöntem, bu düğümün bir kopyasını döndürür, yani düğümler için genel bir kopya oluşturucu olarak hizmet eder. Yinelenen düğümün ebeveyni yoktur (parentNode boştur) ve kullanıcı verisi yoktur.
Sözdizimi
CloneNode () metodu sözdizimi aşağıdaki gibidir -
Node cloneNode(boolean deep)
deep - true ise, alt ağacı belirtilen düğüm altında yinelemeli olarak klonlar; false ise, yalnızca düğümün kendisini (ve bir Öğe ise özniteliklerini) klonlayın.
Bu yöntem yinelenen düğümü döndürür.
Misal
Aşağıdaki örnek (clonenode_example.htm) bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve ilk Employee öğesinin derin bir kopyasını oluşturur .
<!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>
Yukarıdaki örnekte görebileceğiniz gibi, cloneNode () parametresini true olarak ayarladık . Bu nedenle, Employee öğesinin altındaki her alt öğe kopyalanır veya klonlanır.
Yürütme
Bu dosyayı sunucu yolunda clonenode_example.htm olarak kaydedin (bu dosya ve node.xml, sunucunuzda aynı yolda olmalıdır). Çıkışı aşağıda gösterildiği gibi alacağız -
Tanmay Patil, 1234567890, [email protected]
Taniya Mishra, 1234667898, [email protected]
Tanisha Sharma, 1234562350, [email protected]
Tanmay Patil, 1234567890, [email protected]
İlk Çalışan öğesinin tamamen klonlandığını fark edeceksiniz .