กับ DOM คุณสามารถเข้าถึงทุกโหนดในเอกสาร XML
ลองตัวเอง - ตัวอย่าง
ตัวอย่างด้านล่างใช้ไฟล์ XML Books.xml
เข้าโหนดโดยใช้หมายเลขดัชนีในรายการโหนด
ใช้ getElementsByTagName() วิธีการที่จะได้รับที่สาม <title> องค์ประกอบใน "books.xml"
ห่วงผ่านโหนดใช้ทรัพย์สินยาว
ใช้คุณสมบัติความยาวห่วงผ่านทั้งหมด <title> องค์ประกอบใน "books.xml"
ดูชนิดของโหนขององค์ประกอบ
ใช้ NodeType คุณสมบัติที่จะได้รับชนิดของโหนขององค์ประกอบรากใน "books.xml"
ห่วงผ่านโหนดองค์ประกอบ
ใช้ NodeType คุณสมบัติไปยังต่อมน้ำองค์ประกอบกระบวนการเฉพาะใน "books.xml"
ห่วงผ่านโหนดองค์ประกอบโดยใช้ความสัมพันธ์โหนด
ใช้ NodeType คุณสมบัติและคุณสมบัติการประมวลผล nextSibling โหนดองค์ประกอบใน "books.xml"
การเข้าถึงโหนด
คุณสามารถเข้าถึงโหนดในสามวิธี:
1. โดยการใช้ getElementsByTagName() วิธีการ
2. โดยการวนลูปผ่าน (traversing) ต้นไม้โหนด
3. โดยการนำต้นไม้โหนดโดยใช้ความสัมพันธ์โหนด
getElementsByTagName() วิธี
getElementsByTagName () ผลตอบแทนองค์ประกอบทั้งหมดที่มีชื่อแท็กระบุ
วากยสัมพันธ์
node.getElementsByTagName("tagname");
ตัวอย่าง
ตัวอย่างต่อไปนี้จะส่งกลับทั้งหมด <title> องค์ประกอบภายใต้องค์ประกอบของ X ไปนี้:
x.getElementsByTagName("title");
โปรดทราบว่าตัวอย่างข้างต้นส่งกลับเฉพาะ <title> องค์ประกอบภายใต้ X โหนด หากต้องการกลับไปทั้งหมด <title> องค์ประกอบในการใช้เอกสาร XML:
xmlDoc.getElementsByTagName("title");
ที่ XMLDOC เป็นเอกสารเอง (document node)
DOM รายการโหนด
getElementsByTagName() วิธีการส่งกลับรายการโหนด รายการโหนดเป็นอาร์เรย์ของโหนด
x = xmlDoc.getElementsByTagName("title");
<title> องค์ประกอบใน X สามารถเข้าถึงได้โดยหมายเลขดัชนี ในการเข้าถึงที่สาม <title> คุณสามารถเขียน ::
y = x[2];
Note: ดัชนีเริ่มต้นที่ 0
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับรายการโหนดในบทต่อมาของการกวดวิชานี้
โหนด DOM รายการยาว
คุณสมบัติความยาวกำหนดความยาวของรายการโหนด (the number of nodes)
คุณสามารถห่วงผ่านรายการโหนดโดยใช้ทรัพย์สินความยาว:
ตัวอย่าง
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
ลองตัวเอง» ประเภทโหนด
documentElement ทรัพย์สินของเอกสาร XML เป็นโหนดราก
nodeName ทรัพย์สินของโหนดเป็นชื่อของโหนด
nodeType ทรัพย์สินของโหนดเป็นประเภทของโหนด
คุณจะเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติของโหนดในบทต่อไปของการกวดวิชานี้
ภายในโหนด
รหัสต่อไปนี้ loops ผ่านโหนดเด็กที่ยังโหนดองค์ประกอบของโหนดราก:
ตัวอย่าง
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
ลองตัวเอง» ตัวอย่างอธิบายว่า:
- สมมติว่าคุณได้โหลด " books.xml " ลง XMLDOC
- รับโหนดลูกขององค์ประกอบราก (xmlDoc)
- สำหรับแต่ละโหนดเด็กตรวจสอบประเภทโหนด ถ้าชนิดโหนดเป็น "1" มันเป็นโหนดองค์ประกอบ
- เอาท์พุทชื่อของโหนดถ้ามันเป็นโหนดองค์ประกอบ
การนำโหนดความสัมพันธ์
รหัสต่อไปนี้นำทางต้นไม้โหนดโดยใช้ความสัมพันธ์โหนด:
ตัวอย่าง
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
ลองตัวเอง» ตัวอย่างอธิบายว่า:
- สมมติว่าคุณได้โหลด " books.xml " ลง XMLDOC
- รับโหนดลูกขององค์ประกอบหนังสือเล่มแรก
- ตั้ง "y" ตัวแปรจะเป็นโหนดลูกคนแรกขององค์ประกอบหนังสือเล่มแรก
- สำหรับแต่ละโหนดเด็ก (starting with the first child node "y") :
- ตรวจสอบชนิดโหนด ถ้าชนิดโหนดเป็น "1" มันเป็นโหนดองค์ประกอบ
- เอาท์พุทชื่อของโหนดถ้ามันเป็นโหนดองค์ประกอบ
- ตั้ง "y" ตัวแปรจะเป็นโหนดพี่น้องถัดไปและวิ่งผ่านห่วงอีกครั้ง