XML Tutorial

XML หน้าแรก บทนำ XML XML วิธีใช้งาน XML Tree ไวยากรณ์ XML องค์ประกอบ XML คุณสมบัติ XML XML เนมสเปซ จอแสดงผล XML XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink เครื่องมือตรวจสอบ XML XML DTD XML Schema XML Server ตัวอย่าง XML แบบทดสอบ XML ใบรับรอง XML

XML AJAX

บทนำ AJAX AJAX XMLHttp คำขอ AJAX การตอบสนอง AJAX ไฟล์ AJAX XML AJAX PHP AJAX ASP ฐานข้อมูล AJAX แอปพลิเคชัน AJAX ตัวอย่าง AJAX

XML DOM

บทนำ DOM โหนด DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM DOM Traversing การนำทาง DOM DOM รับค่า DOM เปลี่ยนโหนด DOM ลบโหนด DOM แทนที่โหนด DOM สร้างโหนด DOM เพิ่มโหนด DOM โคลนโหนด ตัวอย่าง DOM

บทช่วย สอนXPath

บทนำ XPath โหนด XPath ไวยากรณ์ XPath แกน XPath ตัวดำเนินการ XPath ตัวอย่าง XPath

กวดวิชาXSLT

บทนำ XSLT ภาษา XSL การแปลง XSLT XSLT <แม่แบบ> XSLT <ค่าของ> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <เลือก> ใช้ XSLT XSLT บนไคลเอนต์ XSLT บนเซิร์ฟเวอร์ XSLT แก้ไข XML ตัวอย่าง XSLT

กวดวิชาXQuery

บทนำ XQuery ตัวอย่าง XQuery XQuery FLWOR XQuery HTML ข้อกำหนด XQuery ไวยากรณ์ XQuery XQuery เพิ่ม XQuery Select ฟังก์ชัน XQuery

XML DTD

บทนำ DTD บล็อกตัวต่อ DTD องค์ประกอบ DTD คุณสมบัติ DTD องค์ประกอบ DTD เทียบกับ Attr หน่วยงาน DTD ตัวอย่าง DTD

ส คีมา XSD

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

XSD Complex

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

ข้อมูลXSD

XSD สตริง วันที่ XSD XSD ตัวเลข XSD เบ็ดเตล็ด ข้อมูลอ้างอิง XSD

บริการเว็บ

XML Services XML WSDL XML SOAP XML RDF XML RSS

อ้างอิง

ประเภทโหนด DOM โหนด DOM DOM NodeList DOM NamedNodeMap เอกสาร DOM องค์ประกอบ DOM แอตทริบิวต์ DOM ข้อความ DOM DOM CDATA ความคิดเห็นของ DOM DOM XMLHttpRequest DOM Parser องค์ประกอบ XSLT ฟังก์ชัน XSLT/XPath

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


ด้วย DOM คุณสามารถเข้าถึงทุกโหนดในเอกสาร XML


ลองด้วยตัวคุณเอง - ตัวอย่าง

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


ใช้เมธอด getElementsByTagName() เพื่อรับองค์ประกอบ <title> ที่สามใน "books.xml"


ใช้คุณสมบัติ length เพื่อวนซ้ำองค์ประกอบ <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 เป็นเอกสารเอง (โหนดเอกสาร)



รายการโหนด DOM

เมธอด getElementsByTagName() ส่งคืนรายการโหนด รายการโหนดคืออาร์เรย์ของโหนด

x = xmlDoc.getElementsByTagName("title");

<title> องค์ประกอบใน x สามารถเข้าถึงได้โดยหมายเลขดัชนี ในการเข้าถึง <title> ที่สาม คุณสามารถเขียน::

y = x[2];

หมายเหตุ:ดัชนีเริ่มต้นที่ 0

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับรายการโหนดในบทต่อๆ ไปของบทช่วยสอนนี้


ความยาวของรายการโหนด DOM

คุณสมบัติ length กำหนดความยาวของรายการโหนด (จำนวนโหนด)

คุณสามารถวนซ้ำรายการโหนดโดยใช้คุณสมบัติ length:

ตัวอย่าง

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

ประเภทโหนด

คุณสมบัติdocumentElementของเอกสาร XML คือโหนดรูท

คุณสมบัติnodeNameของโหนดคือชื่อของโหนด

คุณสมบัติnodeTypeของโหนดคือประเภทของโหนด

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติของโหนดในบทถัดไปของบทช่วยสอนนี้


ข้ามโหนด

โค้ดต่อไปนี้วนซ้ำผ่านโหนดย่อย ที่เป็นโหนดองค์ประกอบ ของโหนดรูทด้วย:

ตัวอย่าง

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. สำหรับแต่ละโหนดย่อย (เริ่มต้นด้วยโหนดย่อยแรก "y"):
  5. ตรวจสอบประเภทโหนด หากประเภทโหนดคือ "1" แสดงว่าเป็นโหนดองค์ประกอบ
  6. ส่งออกชื่อของโหนดหากเป็นโหนดองค์ประกอบ
  7. ตั้งค่าตัวแปร "y" ให้เป็นโหนดย่อยถัดไป และรันผ่านลูปอีกครั้ง