ลิสต์องค์ประกอบ XML DOM

getElementsByTagName() หน่วยกระทำและ childNodes คุณสมบัตินี้จะกลับค่าลิสต์ของจุดหรือองค์ประกอบ

ลิสต์ขององค์ประกอบ DOM

เมื่อใช้ childNodes หรือ getElementsByTagName() เมื่อใช้หน่วยความหมายหรือหน่วยกระทำเพื่อหาคุณสมบัติหรือเทคนิค จะกลับค่า NodeList ออปเจ็กต์

ตัวเรียกใช้ NodeList ระบุรายชื่อของจุดหรือองค์ประกอบ ที่มีลำดับเหมือนกันกับ XML

จุดหรือองค์ประกอบในลิสต์ของ NodeList สามารถเข้าถึงด้วยหมายเลขดัชนีที่เริ่มต้นที่ 0

รูปตัวอย่างนี้แสดง books.xml ลิสต์ของโครงสร้าง <title> ที่ตั้งตาราง:

ลิสต์ขององค์ประกอบ DOM

เป็นบางครั้งที่ "books.xml" ถูกโหลดเข้าไปในตัวแปร xmlDoc

บทบาทนี้จะกลับค่าลิสต์ของโครงสร้างที่มีความหมาย "books.xml" สำหรับแอททริบิวต์ title

x = xmlDoc.getElementsByTagName("title");

หลังจากทำงานที่ส่วนบนนี้เสร็จแล้ว x จะกลายเป็นตัวเรียกใช้ NodeList ออปเจ็กต์

รหัสด้านล่างนี้กลับค่าของข้อความขององค์ประกอบ <title> แรกในตัวแปร (x):

ตัวอย่าง

var txt = x[0].childNodes[0].nodeValue;

ทดลองด้วยตัวเอง

หลังจากที่ปฏิบัติงานของคำสั่งด้านบนเสร็จแล้ว txt = "雅舍谈吃".

ความยาวของรายการตัวแปล (node list)

ตัวแปล NodeList จะปรับปรุงตัวเอง. ถ้าลบหรือเพิ่มองค์ประกอบ รายการจะปรับปรุงเองโดยอัตโนมัติ.

รายการตัวแปลของโครงสร้างตัวแปล (node list) length คุณสมบัติเป็นจำนวนของตัวแปลในรายการ.

รหัสนี้กลับค่าจำนวนขององค์ประกอบ <title> ใน "books.xml":

x = xmlDoc.getElementsByTagName('title').length;

หลังจากที่ปฏิบัติงานของคำสั่งด้านบนเสร็จแล้วx มีค่าเท่า 5.

ความยาวของรายการตัวแปล (node list) สามารถใช้ในการวนลูปผ่านทุกองค์ประกอบในรายการ.

รหัสนี้ใช้ length ใช้วิธีคุณสมบัติเพื่อวนลูปผ่านรายการองค์ประกอบ <title>:

ตัวอย่าง

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
    txt += x[i].childNodes[0].nodeValue) + " ";
}

ทดลองด้วยตัวเอง

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

  1. หน้าต้องการ books.xml ที่มีความหมายเพิ่มเติม xmlDoc จีน
  2. ตั้งตัวแปร x เพื่อเก็บรายการตัวแปลขององค์ประกอบทั้งหมดที่มีความหมาย <title>
  3. ดึงค่าของตัวแปลของข้อความจากองค์ประกอบ <title>

รายการคุณสมบัติของ DOM (named node map)

ของตัวแปลขององค์ประกอบ (element node) attributes คุณสมบัติกลับค่าของรายการตัวแปล (node list) ของตัวแปลของคุณสมบัติ.

นี่เรียกว่า named node map ที่คล้ายกับรายการตัวแปล (node list) แต่มีวิธีและคุณสมบัติที่ต่างกัน.

รายการคุณสมบัติจะมีความปรับปรุงเอง. ถ้าลบหรือเพิ่มคุณสมบัติ รายการจะปรับปรุงเองโดยอัตโนมัติ.

รหัสนี้จะกลับค่าของตัวแปรของโครงสร้างตัวแปล (node map) ตัวแรกของ <book> ใน "books.xml":

x = xmlDoc.getElementsByTagName('book')[0].attributes;

หลังจากที่รหัสด้านบนปฏิบัติงานแล้วx.length เท่ากับจำนวนของคุณสมบัติ สามารถใช้ x.getNamedItem() กลับค่าของตัวแปรของโครงสร้างตัวแปล (node map).

รหัสนี้ใช้ในการดึงค่าของ "category" แบบคุณสมบัติ และจำนวนของคุณสมบัติของหนังสือแรก:

ตัวอย่าง

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

ทดลองด้วยตัวเอง

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

  1. หน้าต้องการ books.xml ที่ถูกโหลดเข้า xmlDoc จีน
  2. ตั้งค่าตัวแปร x เพื่อบันทึกรายการคุณสมบัติขององค์ประกอบ <book> แรก
  3. เพื่อให้หาค่าของคุณสมบัติ "category" และความยาวของรายการคุณสมบัติ