XML DOM إزالة العقد
طريقة removeChild () تزيل عقدة محددة.
تزيل طريقة removeAttribute () سمة محددة.
جربها بنفسك - أمثلة
تستخدم الأمثلة ملف XML books.xml .
يستخدم هذا المثال removeChild () لإزالة أول عنصر <book>.
يستخدم هذا المثال parentNode و removeChild () لإزالة عنصر <book> الحالي.
يستخدم هذا المثال removeChild () لإزالة عقدة النص من أول عنصر <title>.
يستخدم هذا المثال الخاصية nodeValue () لمسح عقدة النص لعنصر <title> الأول.
يستخدم هذا المثال removeAttribute () لإزالة سمة "category" من عنصر <book> الأول.
يستخدم هذا المثال removeAttributeNode () لإزالة كافة السمات من كافة عناصر <book>.
قم بإزالة عقدة العنصر
طريقة removeChild () تزيل عقدة محددة.
عند إزالة العقدة ، تتم أيضًا إزالة جميع العقد الفرعية الخاصة بها.
ستزيل هذه الشفرة أول عنصر <book> من ملف xml الذي تم تحميله:
مثال
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- قم بتعيين المتغير y ليكون عقدة العنصر المراد إزالتها
- قم بإزالة عقدة العنصر باستخدام طريقة removeChild () من العقدة الأصلية
إزالة نفسي - إزالة العقدة الحالية
طريقة removeChild () هي الطريقة الوحيدة لإزالة عقدة محددة.
عندما تنتقل إلى العقدة التي تريد إزالتها ، فمن الممكن إزالة تلك العقدة باستخدام الخاصية parentNode وطريقة removeChild ():
مثال
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- قم بتعيين المتغير y ليكون عقدة العنصر المراد إزالتها
- قم بإزالة عقدة العنصر باستخدام الخاصية parentNode وطريقة removeChild ()
قم بإزالة عقدة نصية
يمكن أيضًا استخدام طريقة removeChild () لإزالة عقدة نصية:
مثال
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- اضبط المتغير x ليكون أول عقدة لعنصر العنوان
- قم بتعيين المتغير y ليكون عقدة النص المراد إزالتها
- قم بإزالة عقدة العنصر باستخدام طريقة removeChild () من العقدة الأصلية
ليس من الشائع استخدام removeChild () فقط لإزالة النص من العقدة. يمكن استخدام الخاصية nodeValue بدلاً من ذلك. انظر الفقرة التالية.
امسح عقدة نصية
يمكن استخدام الخاصية nodeValue لتغيير قيمة العقدة النصية:
مثال
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- احصل على العقدة الفرعية الأولى لعنصر العنوان الأول.
- استخدم الخاصية nodeValue لمسح النص من عقدة النص
قم بإزالة عقدة سمة حسب الاسم
تزيل طريقة removeAttribute ( ) عقدة سمة حسب اسمها.
مثال: removeAttribute ('category')
يزيل هذا الرمز سمة "category" في عنصر <book> الأول:
مثال
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- استخدم getElementsByTagName () للحصول على عقد الكتاب
- إزالة سمة "الفئة" من عقدة عنصر الكتاب الأول
قم بالتكرار وإزالة سمة "الفئة" لجميع عناصر <book>:
قم بإزالة عقد السمات حسب الكائن
تزيل طريقة removeAttributeNode ( ) عقدة سمة ، باستخدام كائن العقدة كمعلمة.
مثال: removeAttributeNode (x)
يزيل هذا الرمز جميع سمات جميع عناصر <book>:
مثال
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);
}
}
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- استخدم getElementsByTagName () للحصول على جميع عقد الكتاب
- لكل عنصر كتاب تحقق مما إذا كانت هناك أي سمات
- أثناء وجود سمات في عنصر الكتاب ، قم بإزالة السمة