طريقة 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 浏览器 这一节。