ล่าสุดการพัฒนาเว็บบทเรียน
×

XML เกี่ยวกับการสอน

XML บ้าน XML บทนำ XML วิธีใช้ XML ต้นไม้ XML วากยสัมพันธ์ XML องค์ประกอบ XML แอตทริบิวต์ XML namespaces XML แสดง XML XSLT XML XPath XML XLink XML ตรวจสอบ XML DTD XML schema XML เซิร์ฟเวอร์ XML การประยุกต์ใช้งาน XML ตัวอย่าง XML ทดสอบ XML ใบรับรอง

XML DOM

DOM แนะนำ DOM โหนด DOM XMLHttpRequest DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM ภายใน DOM การนำทาง DOM ได้รับค่า DOM Change โหนด DOM Remove โหนด DOM Replace โหนด DOM Create โหนด DOM Add โหนด DOM Clone โหนด DOM ตัวอย่าง

DOM การอ้างอิง

DOM ประเภทโหนด DOM ปม DOM NodeList DOM NamedNodeMap DOM เอกสาร DOM ธาตุ DOM คุณลักษณะ DOM ข้อความ DOM CDATA DOM คิดเห็น DOM XMLHttpRequest DOM parser

XML DTD

DTD แนะนำ DTD การก่อสร้างตึก DTD องค์ประกอบ DTD แอตทริบิวต์ DTD องค์ประกอบ VS attr DTD หน่วยงาน DTD ตัวอย่าง

XSD Schema

XSD แนะนำ XSD ทำอย่างไร XSD <schema> XSD องค์ประกอบ XSD แอตทริบิวต์ XSD ข้อ จำกัด

XSD ซับซ้อน

XSD องค์ประกอบ XSD ว่างเปล่า XSD เพียงองค์ประกอบ XSD ข้อความเท่านั้น XSD ผสม XSD ตัวชี้วัด XSD <any> XSD <anyAttribute> XSD การแทน XSD ตัวอย่าง

XSD Data

XSD เชือก XSD วันที่ XSD เป็นตัวเลข XSD อื่น ๆ XSD การอ้างอิง

Web บริการ

XML บริการ XML WSDL XML SOAP XML RDF XML RSS

 

XML DOM - โหนดการเข้าถึง


กับ 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>";
  }
}
ลองตัวเอง»

ตัวอย่างอธิบายว่า:

  1. สมมติว่าคุณได้โหลด " books.xml " ลง XMLDOC
  2. รับโหนดลูกขององค์ประกอบราก (xmlDoc)
  3. สำหรับแต่ละโหนดเด็กตรวจสอบประเภทโหนด ถ้าชนิดโหนดเป็น "1" มันเป็นโหนดองค์ประกอบ
  4. เอาท์พุทชื่อของโหนดถ้ามันเป็นโหนดองค์ประกอบ

การนำโหนดความสัมพันธ์

รหัสต่อไปนี้นำทางต้นไม้โหนดโดยใช้ความสัมพันธ์โหนด:

ตัวอย่าง

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;
}
ลองตัวเอง»

ตัวอย่างอธิบายว่า:

  1. สมมติว่าคุณได้โหลด " books.xml " ลง XMLDOC
  2. รับโหนดลูกขององค์ประกอบหนังสือเล่มแรก
  3. ตั้ง "y" ตัวแปรจะเป็นโหนดลูกคนแรกขององค์ประกอบหนังสือเล่มแรก
  4. สำหรับแต่ละโหนดเด็ก (starting with the first child node "y") :
  5. ตรวจสอบชนิดโหนด ถ้าชนิดโหนดเป็น "1" มันเป็นโหนดองค์ประกอบ
  6. เอาท์พุทชื่อของโหนดถ้ามันเป็นโหนดองค์ประกอบ
  7. ตั้ง "y" ตัวแปรจะเป็นโหนดพี่น้องถัดไปและวิ่งผ่านห่วงอีกครั้ง