XML DOM replaceChild() روش
تعریف و استفاده
مетод replaceChild() میتواند یک گره فرزند را با گره دیگری جایگزین کند.
اگر این روش موفقیتآمیز باشد، گره جایگزین شده را برمیگرداند، در غیر این صورت NULL برمیگرداند.
نحوه استفاده:
nodeObject.replaceChild(new_node,old_node)
پارامترها | شرح |
---|---|
new_node | لازم است. گره جدیدی که باید جایگزین شود را مشخص کنید. |
old_node | لازم است. گرهای که باید جایگزین شود را مشخص کنید. |
نکات و توضیحات
توضیح:Internet Explorer گرههای متن خالی بین گرهها را (مثلاً علامت سقوط) نادیده میگیرد، در حالی که Mozilla این کار را نمیکند. بنابراین، در مثالهای زیر از یک تابع برای بررسی نوع گره اولین گره فرزند استفاده خواهیم کرد.
نوع گره عناصر 1 است، بنابراین اگر اولین گره فرزند یک گره عناصر نباشد، به گره بعدی حرکت میکند و بررسی ادامه مییابد تا اولین گره فرزند عناصر پیدا شود. این فرآیند تا زمانی که اولین گره فرزند عناصر پیدا شود ادامه مییابد. از این طریق میتوانیم در Internet Explorer و Mozilla روش درستی دریافت کنیم.
نکته:برای اطلاعات بیشتر در مورد تفاوتهای XML DOM بین مرورگرهای IE و Mozilla، به وبسایت ما مرورگر DOM فصلها
مثال
در تمام مثالها، از فایل XML استفاده خواهیم کرد books.xml، و توابع JavaScript loadXMLDoc()。
این بخش از کد میتواند به جای عناصر <title> در اولین عناصر <book> جایگزین شود:
//بررسی اینکه اولین گره فرزند یک گره عناصر است
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//ایجاد یک عناصر عنوان و یک گره متن
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Giada's Family Dinners");
//افزودن گره متن به گره عنوان,
newNode.appendChild(newText);
//جایگزینی اولین گره فرزند با گره جدید
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//خروج همه عنوانها
var 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 آموزش XML