در این قسمت می خواهیم درباره ی نحوه ی حذف کردن node ها صحبت کنیم. متد removeChild برای حذف node مشخص شده بکار می رود
متد removeAttribute برای حذف صفت مورد نظر بکار می رود
حذف کردن یک node

با متد removeChild می توان node مورد نظر را حذف نمود

وقتی node ای را حذف می کنیم ، تمام فرزندان ان node هم حذف می شوند

مثال

قطعه برنامه زیر ، اولین تگ book را از فایل xml بار گذاری شده حذف می کند

xmlDoc=loadXMLDoc(“books.xml”);

y=xmlDoc.getElementsByTagName(“book”)[0];

xmlDoc.documentElement.removeChild(y);

 خط اول :

اشاه گری به فایل books.xml به نام xmldoc ایجاد می کند

خط دوم :

اشاره گری به اولین تگ book به نام y ایجاد می کند

خط سوم :

node ای را که Y به ان اشاره دارد را از فایل xml که xmldoc به ان اشاره دارد حذف می کند

مشاهده و اجرای برنامه کامل
حذف کردن خودم
برای حذف کردن node جاری ، تنها راه استفاده از متد removeChild است
زمانی که شما در حال پیمایش node ای هستید که می خواهید انرا حذف کنید ، تنها راه استفاده از ویژگی parentNode  و متد removeChild است

مثال

xmlDoc=loadXMLDoc(“books.xml”);

x=xmlDoc.getElementsByTagName(“book”)[0];

x.parentNode.removeChild(x);

 خط سوم یعنی از درون والد node ای که x به ان اشاره می کند فرزندش را که همان X به ان اشاره می کند حذف کن !
مشاهده و اجرای برنامه کامل
حذف کردن node متنی
متد removeChild برای حذف node های متنی هم به کار می رود

مثال

xmlDoc=loadXMLDoc(“books.xml”);

x=xmlDoc.getElementsByTagName(“title”)[0];

y=x.childNodes[0];
x.removeChild(y);

خط دوم :

اشاره گری به نام x به اولین تگ titile اشاره دارد

خط سوم :

اشاره گری به نام y به اولین فرزند تگی که x به ان اشاره می کند اشاره دارد (تنها node ای که در titile است همان node متنی است )

خط چهارم :

node ای از x که y به ان اشاره می کند را حذف می نماید
مشاهده و اجرای برنامه کامل
پاک کردن node متنی
از ویژگی nodeValue  می توان برای بدست اوردن و نیز پاک کرد ن مقدار یک node متنی استفاده نمود

مثال:

xmlDoc=loadXMLDoc(“books.xml”);

x=xmlDoc.getElementsByTagName(“title”)[0].childNodes[0];

x.nodeValue=””;

خط دوم :

اشاره گری به نام X به اولین فرزند اولین تگ title ایجاد می کند
مقدار این node را پاک یا تهی میکند

مشاهده و اجرای برنامه کامل
برای مشاهده اینکه چطور می توان مقدار تمام node ها ی متنی درون titile ها را با حلقه پاک کرد اینجا کلیک کنید
حذف کردن یک node صفت توسط نام

برای این کار از متد زیر استفاده می کنیم :

removeAttribute(name)

مثلا برای حذف صفت category دستور زیر را داریم :

removeAttribute(‘category’)

مثال

دستورات زیر صفت category را از اولین تگ book حذف می کند

xmlDoc=loadXMLDoc(“books.xml”);

x=xmlDoc.getElementsByTagName(“book”);

x[0].removeAttribute(“category”);

خط دوم :

چون مشخص نکرده ایم چندمین تگ book را می خواهیم لذا ارایه ای به نام x بوجود می اید که هر خانه ان به یکی از تگ های book اشاره می کند

خط سوم :

از تگ book ا ی که اولین خانه X به ان اشاره دارد و حتما اولین تگ book می باشد صفت category اش را حذف می کند
مشاهده و اجرای برنامه کامل

برای مشاهده چگونگی حذف تمام صفتهای category از تمام تگ های book با استفاده از حلقه اینجا کلیک کنید

حذف کردن صفت با شی

از متد

removeAttributeNode(node)

 
برای حذف صفت با ارسال یک شی node بعنوان پارامترش استفاده می شود

منظور از شی node همان اشاره گری است که به node مورد نظر ایجاد می کنیم

مثال

removeAttributeNode(x)
node صفتی که اشاره گر x به ان اشاره دارد را حذف می کند

مثال
قطعه برنامه زیر تمام صفتهای تمام تگ های book را حذف می کند

xmlDoc=loadXMLDoc(“books.xml”);

x=xmlDoc.getElementsByTagName(“book”);

for (i=0;i<x.length;i++)
{
while (x[i].attributes.length>0)
{
attnode=x[i].attributes[0];
old_att=x[i].removeAttributeNode(attnode);
}
}

خط اول :
ایجاد اشاره گری به نام xmldoc به فایل oks.xml

( در فصلهای اول گفتم که تابع loadXMLDoc یک تابعی است که خودمان دستوراتش را می نویسیم . برای جلوگیری از شلوغ شدن صفحه از نوشتن مجدد دستورات ان جلوگیری می کنم )

خط دوم :

چون مشخص نکرده ایم چندمین تگ book را می خواهیم لذا ارایه ای به نام x بوجود می اید که هر خانه ان به یکی از تگ های book اشاره می کند

خط سوم :
برای تمام خانه های ارایه x دستورات حلقه for انجام می شود

length تعداد خانه های x که هما ن تعداد تگ های book باشد را در خود دارد

اندیس اول صفر است

خط چهارم :
while (x[i].attributes.length>0)

یعنی در صورتیکه i امین تگ book دارای صفت است کارهای درون while را انجام بده

خط پنجم :
attnode=x[i].attributes[0];

اشاره گری به نام attnode به اولین صفت موجود در i امین تگ book ایجاد می کند

خط ششم :
old_att=x[i].removeAttributeNode(attnode);

صفتی که attnode به ان اشاره می کند را از i امین تگ book حذف می کند