XML DOM เพิ่มโหนด
ลองด้วยตัวคุณเอง - ตัวอย่าง
ตัวอย่างด้าน ล่างใช้ไฟล์ XML books.xml
ตัวอย่างนี้ใช้ appendChild() เพื่อเพิ่มโหนดย่อยให้กับโหนดที่มีอยู่
ตัวอย่างนี้ใช้ insertBefore() เพื่อแทรกโหนดก่อนโหนดย่อยที่ระบุ
ตัวอย่างนี้ใช้วิธี setAttribute() เพื่อเพิ่มแอตทริบิวต์ใหม่
ตัวอย่างนี้ใช้ insertData() เพื่อแทรกข้อมูลลงในโหนดข้อความที่มีอยู่
เพิ่มโหนด - appendChild()
appendChild() วิธี การเพิ่มโหนดย่อยไปยังโหนดที่มีอยู่
โหนดใหม่ถูกเพิ่ม (ต่อท้าย) หลังจากโหนดย่อยที่มีอยู่
หมายเหตุ:ใช้ insertBefore() หากตำแหน่งของโหนดมีความสำคัญ
รหัสส่วนนี้สร้างองค์ประกอบ (<edition>) และเพิ่มหลังจากลูกคนสุดท้ายขององค์ประกอบ <book> แรก:
ตัวอย่าง
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- สร้างโหนดใหม่ <รุ่น>
- ต่อท้ายโหนดกับ <book> องค์ประกอบแรก
ส่วนของรหัสนี้ทำเช่นเดียวกันกับด้านบน แต่มีการเพิ่มองค์ประกอบใหม่ด้วยค่า:
ตัวอย่าง
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- สร้างโหนดใหม่ <รุ่น>
- สร้างโหนดข้อความใหม่ "ก่อน"
- ต่อท้ายโหนดข้อความที่ <edition> node
- ผนวก <addition> โหนดต่อ <book> องค์ประกอบ
แทรกโหนด - insertBefore()
เมธอด insertBefore()จะแทรกโหนดก่อนโหนดย่อยที่ระบุ
วิธีนี้มีประโยชน์เมื่อตำแหน่งของโหนดที่เพิ่มเข้ามามีความสำคัญ:
ตัวอย่าง
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- สร้างโหนดองค์ประกอบใหม่ <book>
- แทรกโหนดใหม่ด้านหน้าโหนดองค์ประกอบ <book> สุดท้าย
หากพารามิเตอร์ที่สองของ insertBefore() เป็นโมฆะ โหนดใหม่จะถูกเพิ่มหลังจากโหนดย่อยที่มีอยู่ล่าสุด
x.insertBefore(newNode,null)และx.appendChild(newNode)ทั้งคู่จะผนวกโหนดย่อยใหม่เข้ากับ x
เพิ่มแอตทริบิวต์ใหม่
setAttribute() วิธี การตั้งค่าของแอตทริบิวต์
ตัวอย่าง
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
ตัวอย่างอธิบาย:
- สมมติว่า " books.xml " ถูกโหลดลงใน xmlDoc
- ตั้งค่าแอตทริบิวต์ "รุ่น" เป็น "แรก" สำหรับ <หนังสือ> องค์ประกอบ
ไม่มีเมธอดที่เรียกว่า add Attribute()
โดยที่ setAttribute() จะสร้างแอททริบิวต์ใหม่หากไม่มีแอททริบิวต์
หมายเหตุ:หากมีแอตทริบิวต์อยู่แล้ว เมธอด setAttribute() จะเขียนทับค่าที่มีอยู่
เพิ่มข้อความไปยังโหนดข้อความ - insertData()
เมธอด insertData ()จะแทรกข้อมูลลงในโหนดข้อความที่มีอยู่
เมธอด insertData() มีสองพารามิเตอร์:
- offset - ตำแหน่งที่จะเริ่มต้นการแทรกอักขระ (เริ่มต้นที่ศูนย์)
- string - สตริงที่จะแทรก
โค้ดย่อยต่อไปนี้จะเพิ่ม "Easy" ให้กับโหนดข้อความขององค์ประกอบ <title> แรกของ XML ที่โหลด:
ตัวอย่าง
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");