مетод replaceChild() XML DOM

تعریف و استفاده

مетод replaceChild() با استفاده از یک نود دیگر یک نود فرزند را جایگزین می‌کند.

در صورت موفقیت، این روش نود جایگزین شده را برمی‌گرداند، در صورت شکست null برمی‌گرداند.

جملة:

elementNode.replaceChild(new_node,old_node)
پارامترها توضیح
new_node لازم است. مشخص می‌کند که باید چه نود جدیدی را جایگزین کرد.
old_node لازم است. مشخص می‌کند که باید چه فرزند نود را جایگزین کرد.

مثال

در تمامی مثال‌ها از فایل XML استفاده خواهیم کرد books.xml، و همچنین تابع JavaScript loadXMLDoc()

下面的代码片段替换 "books.xml" 中第一个 <book> 元素的第一个 <title> 元素:

//check if first child node is an element node
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//create a title element and a text node
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//add the text node to the title node,
newNode.appendChild(newText);
//replace the last node with the new node
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
برای (i=0; i<y.length; i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}

خروجی:

Giada's Family Dinners
Harry Potter
XQuery Kick Start
Learning XML

توضیح:Internet Explorer گره‌های خالی بین نودها (مثلاً علامت سکوتی) را نادیده می‌گیرد، در حالی که Mozilla این کار را نمی‌کند. بنابراین، در مثال بالا، ما یک تابع ایجاد کرده‌ایم که گره‌های فرزند صحیح را ایجاد می‌کند.

توجه:برای اطلاعات بیشتری در مورد تفاوت‌های بین مرورگرهای IE و Mozilla، لطفاً به آموزش XML DOM در CodeW3C.com مراجعه کنید مرورگر DOM این بخش.