การลบตัวเลือกของ XML DOM

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

removeAttribute() 方法删除指定的属性。

删除元素节点

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 คุณสมบัติสามารถใช้เพื่อเปลี่ยนหรือเคลี่ยนค่าของโนด์ข้อความ

ลบตัวเลขในคุณสมบัติตามชื่อ

removeAttribute() วิธีนี้ใช้เพื่อลบตัวเลขในคุณสมบัติตามชื่อ

ตัวอย่าง 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');
}

亲自试一试

ลบตัวเลขในคุณสมบัติตามวัตถุ

removeAttributeNode() วิธีนี้ใช้ 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 元素中存在属性,则删除该属性