حذف عقد XML DOM

يستخدم طريقة removeChild() لإزالة العقدة المحددة.

يستخدم طريقة removeAttribute() لإزالة الخاصية المحددة.

مثال

استخدام ملف XML في المثال التالي: books.xml.

الوظيفة loadXMLDoc()،الموجودة في JavaScript الخارجي، لتحميل ملف XML.

إزالة عقدة العنصر
يستخدم هذا المثال removeChild() لإزالة العنصر الأول من <book>.
إزالة العنصر الحالي
يستخدم هذا المثال parentNode و removeChild() لإزالة العنصر الحالي من <book>.
إزالة نودة النص
يستخدم هذا المثال removeChild() لإزالة عقدة النص من العنصر الأول من <title>.
إزالة نص العقدة النصية
يستخدم هذا المثال خاصية nodeValue() لإزالة نص العقدة النصية من العنصر الأول من <title>.
إزالة الخاصية بناءً على الاسم
يستخدم هذا المثال removeAttribute() لإزالة الخاصية "category" من العنصر الأول من <book>.
إزالة الخاصية بناءً على الكائن
يستخدم هذا المثال removeAttributeNode() لإزالة جميع الخصائص من عنصر <book>.

إزالة عقدة العنصر

يستخدم طريقة removeChild() لإزالة العقدة المحددة.

عندما يتم إزالة عقدة، يتم إزالة جميع عقدتها الفرعية أيضًا.

النص المبرمج التالي يقوم بإزالة العنصر الأول من <book> المحمل من xml:

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • تعيين المتغير y لعقدة العنصر التي تريد إزالتها
  • من خلال استخدام طريقة removeChild() لإزالة عقدة العنصر من العقدة الأم

TIY

إزالة الذات - إزالة العقدة الحالية

طريقة removeChild() هي الطريقة الوحيدة لإزالة العقدة المحددة.

عندما تكون قد تمكنت من تحديد العقدة التي تريد إزالتها، يمكنك استخدام خاصية parentNode ومتطبيق طريقة removeChild() لإزالة هذا العقدة: إزالة العقدة

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x); 

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • تعيين المتغير y لعقدة العنصر التي تريد إزالتها
  • من خلال استخدام خاصية parentNode ومتطبيق طريقة removeChild() لإزالة هذا العقدة العنصر

TIY

إزالة نودة النص

يمكن استخدام طريقة removeChild() لإزالة نودة النص: إزالة نودة النص

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • تعيين المتغير x لنودة العقدة للعقدة الأولى من title
  • تعيين المتغير y لنودة النص التي تريد إزالتها
  • من خلال استخدام طريقة removeChild() لإزالة العقدة من العقدة الأم

TIY

ليس يستخدم غالبًا removeChild() لإزالة النص من العقدة. يمكن استخدام خاصية nodeValue بدلاً من ذلك. انظر الفقرة التالية.

إفراغ نودة النص

يمكن استخدام خاصية nodeValue لتغيير أو إفراغ قيمة نودة النص: إفراغ نودة النص

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue=""; 

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • تعيين المتغير x لنودة النص للعقدة الأولى من title
  • استخدام خاصية nodeValue لإفراغ نص نودة النص

TIY

التحسين والتبديل لكل عقدة <title> من نودات النص: TIY

إزالة عقدة الخاصية بناءً على الاسم

يستخدم طريقة removeAttribute(name) لإزالة عقدة الخاصية بناءً على الاسم.

مثال: removeAttribute('category')

كود المقطع التالي يزيل خاصية "category" من العقدة الأولى من <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category"); 

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • استخدام getElementsByTagName() للحصول على عقدة book
  • ازالة الخاصية "category" من العقد الأول لعقد book

TIY

استعرض وازيل جميع خصائص "category" لعقد <book> المختلفة: TIY.

حذف عقد الخاصية بناءً على العنصر

يستخدم طريقة removeAttributeNode(node) باستخدام Node كمعامل لحذف عقد الخاصية.

مثال: removeAttributeNode(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);
  }
}

مثال التوضيح:

  • من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
  • استخدام getElementsByTagName() للحصول على جميع عقد book
  • تحقق من أن كل عقد book يمتلك خصائص
  • إذا كان هناك خصائص في عقد book، فأزالة هذه الخاصية

TIY