XML DOM NodeList

ลิสต์ของตัวอย่างถูกกลับค่าโดยวิธี getElementsByTagName() และคุณสมบัติ childNodes

ตัวอย่าง

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

ฟังก์ชัน loadXMLDoc()ตามที่อยู่นอกจาก JavaScript ในการโหลดฟาไลล์ XML

เอาข้อความจากองค์ประกอบ <title> แรก
ตัวอย่างนี้ใช้วิธี getElementsByTagName() ในการเอาข้อความจากองค์ประกอบ <title> แรกในฟาไลล์ books.xml
วนทั้งหมดจากคุณสมบัติ length
ตัวอย่างนี้ใช้ลิสต์ของตัวอย่างและคุณสมบัติ length ในการวนทั้งหมด <title> ในฟาไลล์ books.xml
เอาคุณสมบัติขององค์ประกอบ
ตัวอย่างนี้ใช้รายการคุณสมบัติเพื่อเอาคุณสมบัติจากองค์ประกอบ <title> แรกในฟาไลล์ books.xml

DOM NodeList

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

วัตถุ NodeList แสดงลิสต์ของตัวอย่าง ตามลำดับที่เหมือนกันใน XML

ใช้ดัชนีที่เริ่มต้นด้วย 0 ในการเข้าถึงตัวอย่างในลิสต์ของเครื่องมือฟีลดาน

ภาพด้านล่างแสดง "books.xml" โหนดของ element <title> หนึ่ง:

โนด์ลิสต์ของ DOM

บทความรหัสที่แสดงความหมายด้วยการใช้ loadXMLDoc() " โหลด "books.xml" สู่ xmlDoc และกลับค่า "books.xml" โหนดของ element โหนด title หนึ่ง:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

หลังจากที่บทบัญญัติข้างต้นทำงานแล้ว x กลายเป็น NodeList ตัวแปร

บทเขียนต่อไปนี้เอาข้อความออกจาก <title> แรกในรายการโหนด x

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

หลังจากที่บทบัญญัติข้างต้นทำงานแล้ว txt = "Everyday Italian"

TIY

Node List Length

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

ความยาวของตัวแปร length ของ NodeList คือจำนวนของโหนดในรายการ

บทความรหัสที่แสดงความหมายด้วยการใช้ loadXMLDoc() ตั้งค่า "books.xml" โหลด xmlDoc และกลับค่าจำนวนของ <title> ใน "books.xml":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

หลังจากที่บทบัญญัติข้างต้นทำงานแล้ว x = 4

ความยาวของรายการโหนดสามารถใช้ในการวนลูปแสดงทุกอิเลเมนต์ในรายการ

บทเขียนต่อไปนี้ใช้ตัวแปร length สำหรับวนลูปรายการ <title> ของทั้งหมด

xmlDoc=loadXMLDoc("books.xml");
// ตัวแปร x จะเก็บรายการโหนด
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

ออกแบบ:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

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

  • ด้วยการใช้ loadXMLDoc() ตั้งค่า "books.xml" โหลด xmlDoc
  • ตั้งค่าตัวแปร x โดยการเก็บรายการโหนดของทุกโหนด <title>
  • ออกค่าของข้อความจากโหนด text ของทั้งหมด <title>

TIY

DOM Attribute List (Named Node Map)

คุณสมบัติ attributes ของโหนดอิเลเมนต์กลับรายการของโหนดคุณสมบัติ

นี่เรียกว่า Named Node Map และเหมือนกับรายการโหนดเช่นเดียวกัน ต่างก็คือต่างเรื่องวิธีและคุณสมบัติบางอย่าง

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

บทความรหัสที่แสดงความหมายด้วยการใช้ loadXMLDoc() โหลด "books.xml" ใส่ xmlDoc และจาก "books.xml" ที่แสดงความหมายของแอลบั้ม <book> แรกใน

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

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

บทความรหัสที่แสดงค่าของคุณสมบัติ "category" ของ book และจำนวนของคุณสมบัติ:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

ออกแบบ:

children
1

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

  • ด้วยการใช้ loadXMLDoc() ตั้งค่า "books.xml" โหลด xmlDoc ใน
  • ตั้งค่าตัวแปร x ด้วยรายการคุณสมบัติทั้งหมดของแอลบั้ม <book> แรก
  • ออกแบบรายการคุณสมบัติจากคุณสมบัติ "category"
  • ออกแบบรายการคุณสมบัติของตัวองค์ประกอบ

TIY