حذف العناصر في DOM لـ XML

removeChild() 方法删除指定的节点。

إزالة الخاصية بناءً على الاسم 方法删除指定的属性。

删除元素节点

removeChild() 方法删除指定的节点。

当一个节点被删除时,它的所有子节点也会被删除。

此代码将从已加载的 xml 中删除第一个 <book> 元素:

مثال

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. تعيين المتغير y للعقدة التي تريد إزالتها
  3. 使用 removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

removeChild() 方法是唯一可以删除指定节点的方法。

当您导航到要删除的节点时,可以使用 parentNode وخصائص removeChild() 用于删除该节点的方法:

مثال

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. تعيين المتغير y للعقدة التي تريد إزالتها
  3. 使用 parentNode وخصائص removeChild() يستخدم الأسلوب لإزالة عقدة العنصر

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

removeChild() يمكن استخدام هذا الأسلوب أيضًا لإزالة عقدة النص:

مثال

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. تعيين المتغير x للعقدة الأولى من عناصر title
  3. تعيين المتغير y عقدة النص التي تريد إزالتها
  4. 使用 removeChild() الأسلوب لإزالة العقدة من العقدة الأم

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

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

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

مثال

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. الحصول على العقدة الأولى من عناصر title
  3. 使用 nodeValue يمكن استخدام الخاصية لإزالة النص من عقدة النص

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

إزالة الخاصية بناءً على الاسم يستخدم هذا الأسلوب لإزالة عقدة الخاصية بناءً على الاسم.

مثال 1

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

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() للحصول على عقدة book
  3. إزالة الخاصية "category" من العنصر الأول من عناصر book

مثال 2

تكرار وإزالة جميع خصائص "category" لعناصر <book>:

for (i = 0; i < xLen; i++) {
    y = x.item(i);
    y.removeAttribute('category');
}

亲自试一试

إزالة الخاصية بناءً على العنصر

إزالة الخاصية باستخدام Node يستخدم هذا الأسلوب باستخدام Node كمعامل لإزالة عقدة الخاصية.

الكود التالي يزيل جميع خصائص عناصر <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);
    }
}

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() 来获取所有 book 节点
  3. 检查每个 book 元素是否有属性
  4. 如果在某个 book 元素中存在属性,则删除该属性