เข้าถึงตัวเล่นเซ็กเกิล XML DOM
ด้วย DOM คุณสามารถเข้าถึงโหมดทุกตัวในเอกสาร XML
เข้าถึงโหมด
คุณสามารถเข้าถึงโหมดด้วยสามวิธี:
- ด้วยการใช้วิธี getElementsByTagName()
- ด้วยการวนลูป (วนเชื่อม) ต้นไม้โหมด
- ด้วยการใช้ความสัมพันธ์ระหว่างโหมดในต้นไม้โหมด
วิธีการ getElementsByTagName()
getElementsByTagName()
กลับคืนทั้งหมดส่วนที่มีชื่อฝายคุณคล้ายที่กำหนด
รูปแบบ
node.getElementsByTagName("tagname");
ตัวอย่าง
ตัวอย่างด้านล่างนี้กลับคืนทั้งหมด <title> ฝายคุณคล้ายที่อยู่ใต้ x ฝายคุณคล้าย:
x.getElementsByTagName("title");
โปรดระวังว่าตัวอย่างด้านบนก็เพียงกลับคืนส่วน <title> ฝายคุณคล้ายที่อยู่ใต้ x โดยไม่มีคำสั่งอื่น ๆ ในบรรดา <title> ฝายคุณคล้ายทั้งหมดในเอกสาร XML โปรดใช้คำสั่งดังนี้:
xmlDoc.getElementsByTagName("title");
ที่นี่xmlDoc
ก็คือเอกสารตัวเอง (โหมดเอกสาร)。
DOM ฝายคุณคล้าย
getElementsByTagName()
มีกลไกนี้กลับมาให้รายชื่อของโค้ด (node list) ซึ่งเป็นตัวเลือกที่เป็นแนวแบบของโค้ด
x = xmlDoc.getElementsByTagName("title");
สามารถเข้าถึงตัวเลือก <title> ใน x ด้วยหมายเลขดังนี้ ถ้าต้องการเข้าถึงตัวเลือกที่สาม คุณสามารถเขียนเช่นนี้
y = x[2];
หมายเหตุ:ดังนั้นตัวเลขจะเริ่มต้นที่ 0
ความยาวของรายชื่อของโค้ด DOM
length
คุณสมบัติเพื่อกำหนดความยาวของรายชื่อของโค้ด (จำนวนของโค้ด)
คุณสามารถใช้ length
คุณสมบัติเพื่อวนลูปผ่านรายชื่อของโค้ด
ตัวอย่าง
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i <x.length; i++) { // สามารถเขียนรหัสด้านล่างนี้เพื่อจัดการกับแต่ละโค้ด }
ประเภทของโค้ด
โค้ดของเอกสาร XML documentElement
คุณสมบัติคือโค้ดราก
คุณสมบัติของโค้ดเป็น nodeName
คุณสมบัติคือชื่อของโค้ด
คุณสมบัติของโค้ดเป็น nodeType
คุณสมบัติคือประเภทของโค้ด
คุณจะเรียนรู้เกี่ยวกับคุณสมบัติของโค้ดมากยิ่งขึ้นในบทเรียนต่อไป
วนลูปโค้ด
รหัสด้านล่างนี้ทำงานเพื่อวนลูปผ่านโค้ดลูกของโค้ดราก (โค้ดที่เป็นตัวเลือกของโค้ด)
ตัวอย่าง
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i <x.length; i++) { // จัดการเฉพาะตัวเลือกของโค้ด (ประเภท 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++) { // จัดการเฉพาะตัวเลือกของโค้ด (ประเภท 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
ตัวอย่างที่ชี้แจง
- ตอนนี้เปิดใจด้วยว่าคุณได้ทำขึ้นbooks.xml" โหลดเข้า
xmlDoc
- ดึงโค้ดเดียวกับเด็กที่มีอยู่ใน element โดยใช้
- 將 "y" 參量設置為第一個 book 元素的第一个子節點
- 對於每個子節點(從第一個子節點 "
y
" 開始): - 檢查每個子節點的節點類型。如果節點類型為 "
1
",則它是元素節點 - 如果是元素節點,則輸出該節點的名称
- 將 "
y
" 參量設置為下一同級節點,並再次運行循環