XML DOM - Düğüm Oluştur
Bu bölümde, belge nesnesinin birkaç yöntemini kullanarak yeni düğümlerin nasıl oluşturulacağını tartışacağız. Bu yöntemler, yeni eleman düğümü, metin düğümü, açıklama düğümü, CDATA bölüm düğümü ve öznitelik düğümü oluşturmak için bir kapsam sağlar . Yeni oluşturulan düğüm öğe nesnesinde zaten mevcutsa, yenisiyle değiştirilir. Aşağıdaki bölümler bunu örneklerle göstermektedir.
Yeni Element düğümü oluştur
CreateElement () yöntemi yeni bir eleman düğümü oluşturur. Yeni oluşturulan eleman düğümü, eleman nesnesinde mevcutsa, yenisi ile değiştirilir.
Sözdizimi
CreateElement () yöntemini kullanmak için sözdizimi aşağıdaki gibidir -
var_name = xmldoc.createElement("tagname");
Nerede,
var_name - yeni elemanın adını tutan kullanıcı tanımlı değişken adıdır.
("etiket adı ") - oluşturulacak yeni eleman düğümünün adıdır.
Misal
Aşağıdaki örnek (createnewelement_example.htm) bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve XML belgesinde yeni bir öğe düğümü PhoneNo 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");
new_element = xmlDoc.createElement("PhoneNo");
x = xmlDoc.getElementsByTagName("FirstName")[0];
x.appendChild(new_element);
document.write(x.getElementsByTagName("PhoneNo")[0].nodeName);
</script>
</body>
</html>
new_element = xmlDoc.createElement ("PhoneNo"); <PhoneNo> yeni eleman düğümünü oluşturur
x.appendChild (new_element); x , yeni öğe düğümünün eklendiği belirtilen <İlkAdı> alt düğümün adını tutar.
Yürütme
Bu dosyayı sunucu yolunda createnewelement_example.htm olarak kaydedin (bu dosya ve node.xml sunucunuzda aynı yolda olmalıdır). Çıktıda öznitelik değerini PhoneNo olarak alıyoruz .
Yeni Metin düğümü oluştur
CreateTextNode () yöntemi yeni bir metin düğümü oluşturur.
Sözdizimi
CreateTextNode () kullanmak için sözdizimi aşağıdaki gibidir -
var_name = xmldoc.createTextNode("tagname");
Nerede,
var_name - yeni metin düğümünün adını tutan kullanıcı tanımlı değişken adıdır.
("etiket adı") - parantez içinde, oluşturulacak yeni metin düğümünün adı bulunur.
Misal
Aşağıdaki örnek (createtextnode_example.htm) bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve XML belgesinde yeni bir metin düğümü Im yeni metin düğümü 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");
create_e = xmlDoc.createElement("PhoneNo");
create_t = xmlDoc.createTextNode("Im new text node");
create_e.appendChild(create_t);
x = xmlDoc.getElementsByTagName("Employee")[0];
x.appendChild(create_e);
document.write(" PhoneNO: ");
document.write(x.getElementsByTagName("PhoneNo")[0].childNodes[0].nodeValue);
</script>
</body>
</html>
Yukarıdaki kodun detayları aşağıdaki gibidir -
create_e = xmlDoc.createElement ("PhoneNo"); yeni bir < PhoneNo > öğesi oluşturur .
create_t = xmlDoc.createTextNode ("Ben yeni metin düğümüm"); yeni bir metin düğümü oluşturur "Ben yeni metin düğümü" .
x.appendChild (create_e); metin düğümü, "Yeni metin düğümü" < PhoneNo > öğesine eklenir .
document.write (x.getElementsByTagName ("PhoneNo") [0] .childNodes [0] .nodeValue); yeni metin düğümü değerini <PhoneNo> öğesine yazar.
Yürütme
Bu dosyayı sunucu yolunda createtextnode_example.htm olarak kaydedin (bu dosya ve node.xml, sunucunuzda aynı yolda olmalıdır). Çıktıda öznitelik değerini yani PhoneNO: Im new text node olarak alıyoruz .
Yeni Yorum düğümü oluştur
CreateComment () yöntemi yeni bir açıklama düğümü oluşturur. Kod işlevselliğinin kolay anlaşılması için programa açıklama düğümü dahil edilmiştir.
Sözdizimi
CreateComment () kullanmak için sözdizimi aşağıdaki gibidir -
var_name = xmldoc.createComment("tagname");
Nerede,
var_name - yeni yorum düğümünün adını tutan kullanıcı tanımlı değişken adıdır.
("etiket adı ") - oluşturulacak yeni yorum düğümünün adıdır.
Misal
Aşağıdaki örnek (createcommentnode_example.htm), bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve XML belgesinde "Şirket üst düğümdür" şeklinde yeni bir yorum düğümü 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");
create_comment = xmlDoc.createComment("Company is the parent node");
x = xmlDoc.getElementsByTagName("Company")[0];
x.appendChild(create_comment);
document.write(x.lastChild.nodeValue);
</script>
</body>
</html>
Yukarıdaki örnekte -
create_comment = xmlDoc.createComment ("Şirket, ana düğümdür") creates a specified comment line.
x.appendChild (create_comment) Bu satırda 'x' , açıklama satırının eklendiği <Company> öğesinin adını tutar.
Yürütme
Bu dosyayı sunucu yolunda createcommentnode_example.htm olarak kaydedin (bu dosya ve node.xml sunucunuzdaki aynı yolda olmalıdır). Çıktıda, Şirket ana düğüm olduğu için öznitelik değerini alırız .
Yeni CDATA Bölüm Düğümü Oluşturun
CreateCDATASection () yöntemi yeni bir CDATA bölüm düğümü oluşturur. Yeni oluşturulan CDATA bölüm düğümü eleman nesnesinde mevcutsa, yenisi ile değiştirilir.
Sözdizimi
CreateCDATASection () kullanmak için sözdizimi aşağıdaki gibidir -
var_name = xmldoc.createCDATASection("tagname");
Nerede,
var_name - yeni CDATA bölüm düğümünün adını tutan kullanıcı tanımlı değişken adıdır.
("etiket adı ") - oluşturulacak yeni CDATA bölüm düğümünün adıdır.
Misal
Aşağıdaki örnek (createcdatanode_example.htm) bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve XML belgesinde "CDATA Örneği Oluştur" adlı yeni bir CDATA bölüm düğümü 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");
create_CDATA = xmlDoc.createCDATASection("Create CDATA Example");
x = xmlDoc.getElementsByTagName("Employee")[0];
x.appendChild(create_CDATA);
document.write(x.lastChild.nodeValue);
</script>
</body>
</html>
Yukarıdaki örnekte -
create_CDATA = xmlDoc.createCDATASection ("CDATA Örneği Oluştur") yeni bir CDATA bölüm düğümü oluşturur , "CDATA Örneği Oluştur"
x.appendChild (create_CDATA) burada, x , CDATA düğüm değerinin eklendiği 0'da dizinlenmiş belirtilen <Employee> öğesini tutar.
Yürütme
Bu dosyayı sunucu yolunda createcdatanode_example.htm olarak kaydedin (bu dosya ve node.xml, sunucunuzda aynı yolda olmalıdır). Çıktıda, öznitelik değerini Create CDATA Örneği olarak alıyoruz .
Yeni Öznitelik düğümü oluştur
Yeni bir öznitelik düğümü oluşturmak için setAttributeNode () yöntemi kullanılır. Yeni oluşturulan öznitelik düğümü eleman nesnesinde mevcutsa, yenisiyle değiştirilir.
Sözdizimi
CreateElement () yöntemini kullanmak için sözdizimi aşağıdaki gibidir -
var_name = xmldoc.createAttribute("tagname");
Nerede,
var_name - yeni öznitelik düğümünün adını tutan kullanıcı tanımlı değişken adıdır.
("etiket adı ") - oluşturulacak yeni öznitelik düğümünün adıdır.
Misal
Aşağıdaki örnek (createattributenode_example.htm), bir XML belgesini ( node.xml ) bir XML DOM nesnesine ayrıştırır ve XML belgesinde yeni bir öznitelik düğümü bölümü 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");
create_a = xmlDoc.createAttribute("section");
create_a.nodeValue = "A";
x = xmlDoc.getElementsByTagName("Employee");
x[0].setAttributeNode(create_a);
document.write("New Attribute: ");
document.write(x[0].getAttribute("section"));
</script>
</body>
</html>
Yukarıdaki örnekte -
create_a = xmlDoc.createAttribute ("Kategori") , <section> adıyla bir öznitelik oluşturur.
create_a.nodeValue = "Management" , <section> özniteliği için "A" değerini oluşturur .
x [0] .setAttributeNode (create_a) bu öznitelik değeri, 0'da indekslenmiş <Employee> düğüm öğesine ayarlanır.