XML DOM NodeList
- หน้าก่อน ข้อมูลของตัวองค์ประกอบ DOM
- หน้าต่อไป การเดินทางหน้าต่างๆ ของ DOM
ลิสต์ของตัวอย่างถูกกลับค่าโดยวิธี 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> หนึ่ง:

บทความรหัสที่แสดงความหมายด้วยการใช้ 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"
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>
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"
- ออกแบบรายการคุณสมบัติของตัวองค์ประกอบ
- หน้าก่อน ข้อมูลของตัวองค์ประกอบ DOM
- หน้าต่อไป การเดินทางหน้าต่างๆ ของ DOM