طريقة replaceChild() الخاصة بـ XML DOM

التعريف والاستخدام

يستخدم طريقة replaceChild() لاستبدال عقدة فرعية أخرى

إذا نجح، فإن هذه الطريقة تعود العقدة التي تم استبدالها، وإذا فشلت، تعود null.

النحو:

elementNode.replaceChild(new_node,old_node)
المتغيرات وصف
new_node مطلوب. يحدد العقدة الجديدة.
old_node مطلوب. يحدد العقدة الفرعية التي يتم استبدالها.

مثال

في جميع الأمثلة، سنستخدم ملف XML books.xml، وأيضاً دالة JavaScript loadXMLDoc()

الكود التالي يبدل "books.xml" عنصر <book> الأول عقدة <title> الأول

//تحقق من أن أول عقدة الأولاد هي عقدة عنصر
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];
//إنشاء عنصر عنوان و عنصر نص
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//إضافة عنصر النص إلى عنصر العنوان ,
newNode.appendChild(newText);
//replace the last node with the new node
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (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 浏览器差异的内容,请访问 CodeW3C.com 的 XML DOM 教程中的 DOM 浏览器 这一节。