XML DOM ลบโหนด
removeChild() วิธีการลบโหนดที่ระบุ
removeAttribute() วิธีการลบแอตทริบิวต์ที่ระบุ
ลองด้วยตัวคุณเอง - ตัวอย่าง
ตัวอย่าง ใช้ไฟล์ XML books.xml
ตัวอย่างนี้ใช้ removeChild() เพื่อลบองค์ประกอบ <book> แรก
ตัวอย่างนี้ใช้ parentNode และ removeChild() เพื่อลบองค์ประกอบ <book> ปัจจุบัน
ตัวอย่างนี้ใช้ RemoveChild() เพื่อลบโหนดข้อความออกจากองค์ประกอบ <title> แรก
ตัวอย่างนี้ใช้คุณสมบัติ nodeValue() เพื่อล้างโหนดข้อความขององค์ประกอบ <title> แรก
ตัวอย่างนี้ใช้ removeAttribute() เพื่อลบแอตทริบิวต์ "หมวดหมู่" ออกจากองค์ประกอบ <book> แรก
ตัวอย่างนี้ใช้ removeAttributeNode() เพื่อลบแอตทริบิวต์ทั้งหมดออกจากองค์ประกอบ <book> ทั้งหมด
ลบโหนดองค์ประกอบ
removeChild() วิธี การลบโหนดที่ระบุ
เมื่อโหนดถูกลบ โหนดย่อยทั้งหมดจะถูกลบออกด้วย
รหัสนี้จะลบองค์ประกอบ <book> แรกออกจาก xml ที่โหลด:
ตัวอย่าง
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- ตั้งค่าตัวแปร y ให้เป็นโหนดองค์ประกอบที่จะลบ
- ลบโหนดองค์ประกอบโดยใช้เมธอด removeChild() จากโหนดหลัก
Remove Myself - ลบโหนดปัจจุบัน
เมธอด 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')
รหัสนี้จะลบแอตทริบิวต์ "หมวดหมู่" ในองค์ประกอบ <book> แรก:
ตัวอย่าง
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- ใช้ getElementsByTagName() เพื่อรับโหนดหนังสือ
- ลบแอตทริบิวต์ "หมวดหมู่" จากโหนดองค์ประกอบหนังสือเล่มแรก
วนซ้ำและลบแอตทริบิวต์ "หมวดหมู่" ขององค์ประกอบ <book> ทั้งหมด:
ลบโหนดแอตทริบิวต์โดย Object
วิธีการ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() เพื่อรับโหนดหนังสือทั้งหมด
- สำหรับองค์ประกอบหนังสือแต่ละเล่ม ให้ตรวจสอบว่ามีคุณสมบัติใดบ้าง
- ในขณะที่มีแอตทริบิวต์ในองค์ประกอบหนังสือ ให้ลบแอตทริบิวต์