เพิ่มตัวเลือก XML DOM

ตัวอย่าง

ตัวอย่างด้านล่างใช้ไฟล์ XML books.xml

ฟังก์ชัน loadXMLDoc()ตั้งอยู่ด้านนอก JavaScript ใช้เพื่อโหลดไฟล์ XML。

ใส่โครงสร้างที่กำหนดเข้าไปหลังจากโครงสร้างย่อยสุดท้าย
ตัวอย่างนี้ใช้วิธี appendChild() ในการเพิ่มโครงสร้างย่อยเข้าสู่โครงสร้างที่มีอยู่แล้ว
ใส่โครงสร้างที่กำหนดเข้าไปก่อนโครงสร้างย่อยที่กำหนด
ตัวอย่างนี้ใช้วิธี insertBefore() ในการใส่โครงสร้างที่กำหนดเข้าไปก่อนโครงสร้างย่อยที่กำหนด
เพิ่มคุณสมบัติใหม่
ตัวอย่างนี้ใช้วิธี setAttribute() ในการเพิ่มคุณสมบัติใหม่
เพิ่มข้อมูลเข้าสู่ตัวอักษรเอลิเมนต์ของข้อความ
ตัวอย่างนี้ใช้วิธี insertData() ในการใส่ข้อมูลเข้าสู่ตัวอักษรเอลิเมนต์ของข้อความ

การเพิ่มโครงสร้าง - appendChild()

วิธี appendChild() ใช้ในการเพิ่มโครงสร้างย่อยเข้าสู่โครงสร้างที่มีอยู่แล้ว

โครงสร้างใหม่จะถูกเพิ่ม (เพิ่มเติม) หลังจากโครงสร้างย่อยที่มีอยู่แล้ว

หมายเหตุ:ใช้วิธี insertBefore() ถ้าตำแหน่งของโครงสร้างเป็นสำคัญ

บทความรหัสที่นี้สร้างโครงสร้าง ( <edition> ) และเพิ่มมันเข้าไปหลังจากโครงสร้างย่อยสุดท้ายของตัวอักษรเอลิเมนต์ <book> แรก

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

ตัวอย่างที่ชี้แจง:

  1. ด้วยการใช้ loadXMLDoc() เปลี่ยนค่าของ "books.xmlโหลด xmlDoc
  2. สร้างโครงสร้างใหม่ <edition>
  3. ใส่โครงสร้างนี้เข้าสู่ตัวอักษรเอลิเมนต์ <book> แรก

TIY

วนโครงสร้างและเพิ่มเลมเมนต์เข้าสู่ทุก <book> ตัวอักษรเอลิเมนต์TIY

การใส่โครงสร้าง - insertBefore()

วิธี insertBefore() ใช้ในการใส่โครงสร้างที่กำหนดเข้าไปก่อนโครงสร้างย่อยที่กำหนด

นี้เป็นวิธีที่มีประโยชน์เมื่อตำแหน่งของโครงสร้างเป็นสำคัญ

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

ตัวอย่างที่ชี้แจง:

  1. ด้วยการใช้ loadXMLDoc() เปลี่ยนค่าของ "books.xmlโหลด xmlDoc
  2. สร้างโครงสร้างเลมเมนต์ใหม่ <book>
  3. ใส่โครงสร้างนี้เข้าไปก่อนหน้านั้น <book> ตัวอักษรเอลิเมนต์

TIY

ถ้าค่าที่ใส่เข้าไปในตัวอักษรที่สองของ insertBefore() คือ null โครงสร้างใหม่จะถูกเพิ่มเข้าไปหลังจากโครงสร้างย่อยที่มีอยู่แล้ว

x.insertBefore(newNode,null) และ x.appendChild(newNode) สามารถเพิ่มโครงสร้างย่อยใหม่เข้าสู่ x ได้

เพิ่มคุณสมบัติใหม่

addAtribute() นี้หน้าต่างไม่มีอยู่。

ถ้าคุณภาพยืนยันไม่มีอยู่ แล้ว setAttribute() จะสร้างคุณภาพใหม่

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

ตัวอย่างที่ชี้แจง:

  1. ด้วยการใช้ loadXMLDoc() เปลี่ยนค่าของ "books.xmlโหลด xmlDoc
  2. เปลี่ยนค่าของคุณภาพ "edition" ของ <book> แรกเป็น "first"

TIY

หมายเหตุ:ถ้าคุณภาพยืนยันมีอยู่แล้ว setAttribute() จะทับทับค่าที่มีอยู่แล้ว

เพิ่มข้อความใส่โนด์ข้อความ - insertData()

insertData() จะใส่ข้อมูลเข้าสู่ข้อความของโนด์ข้อความที่มีอยู่แล้ว

insertData() มีอัตรายอิงสองตัว

  • offset - ที่ไหนเริ่มการใส่ตัวอักษร (เริ่มต้นด้วย 0)
  • string - ตัวอักษรที่ต้องการใส่

บทบาทของโค้ดด้านล่างนี้จะเพิ่ม "Easy" ใส่นำเสนอของ <title> อันแรกใน XML ที่เหลือ

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY