โหนด XML DOM
ตาม XML DOM ทุกอย่างในเอกสาร XML เป็นโหนด :
- เอกสารทั้งหมดเป็นโหนดเอกสาร
- องค์ประกอบ XML ทุกองค์ประกอบเป็นโหนดองค์ประกอบ
- ข้อความในองค์ประกอบ XML เป็นโหนดข้อความ
- ทุกแอตทริบิวต์เป็นโหนดแอตทริบิวต์
- ความคิดเห็นเป็นโหนดความคิดเห็น
ตัวอย่าง DOM
ดูไฟล์ XML ต่อไปนี้ ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
โหนดรูทใน XML ด้านบนมีชื่อว่า <ร้านหนังสือ>
โหนดอื่นๆ ทั้งหมดในเอกสารมีอยู่ภายใน <ร้านหนังสือ>
โหนดราก <ร้านหนังสือ> มี 4 <book> โหนด
<book> โหนดแรกถือโหนดย่อย: <title>, <author>, <year> และ <price>
โหนดย่อยประกอบด้วยโหนดข้อความแต่ละโหนด "ภาษาอิตาลีทุกวัน", "Giada De Laurentiis", "2005" และ "30.00"
ข้อความจะถูกเก็บไว้ในโหนดข้อความเสมอ
ข้อผิดพลาดทั่วไปในการประมวลผล DOM คือการคาดหวังว่าโหนดองค์ประกอบจะมีข้อความ
อย่างไรก็ตาม ข้อความของโหนดองค์ประกอบจะถูกเก็บไว้ในโหนดข้อความ
ในตัวอย่างนี้: <year>2005</year>โหนดองค์ประกอบ <year> มีโหนดข้อความที่มีค่า "2005"
"2005" ไม่ใช่ค่าขององค์ประกอบ <year>!
แผนผังโหนด XML DOM
XML DOM ดูเอกสาร XML เป็นโครงสร้างแบบต้นไม้ โครงสร้างต้นไม้เรียกว่าโหนดทรี
ทุกโหนดสามารถเข้าถึงได้ผ่านทรี เนื้อหาของพวกเขาสามารถแก้ไขหรือลบและสามารถสร้างองค์ประกอบใหม่ได้
โหนดทรีแสดงชุดของโหนดและการเชื่อมต่อระหว่างโหนด ต้นไม้เริ่มต้นที่โหนดรากและแยกออกไปยังโหนดข้อความที่ระดับต่ำสุดของต้นไม้:
รูปภาพ ด้านบนแสดงไฟล์ XML books.xml
ผู้ปกครองโหนด เด็ก และพี่น้อง
โหนดในแผนผังโหนดมีความสัมพันธ์แบบลำดับชั้นซึ่งกันและกัน
คำว่า parent, child และ brother ใช้เพื่ออธิบายความสัมพันธ์ โหนดหลักมีลูก เด็กในระดับเดียวกันเรียกว่าพี่น้อง (พี่น้อง)
- ในโหนดทรี โหนดบนสุดเรียกว่ารูท
- ทุกโหนด ยกเว้นรูท มีโหนดหลักเพียงหนึ่งโหนดเท่านั้น
- โหนดสามารถมีลูกได้จำนวนเท่าใดก็ได้
- ใบไม้เป็นโหนดที่ไม่มีลูก
- พี่น้องเป็นโหนดที่มีผู้ปกครองคนเดียวกัน
รูปภาพต่อไปนี้แสดงส่วนหนึ่งของแผนผังโหนดและความสัมพันธ์ระหว่างโหนด:
เนื่องจากข้อมูล XML มีโครงสร้างอยู่ในรูปแบบต้นไม้ จึงสามารถสำรวจได้โดยไม่ต้องทราบโครงสร้างที่แน่นอนของต้นไม้และไม่ทราบประเภทของข้อมูลที่มีอยู่ภายใน
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการสำรวจโหนดทรีในบทต่อๆ ไปของบทช่วยสอนนี้
ลูกคนแรก - ลูกคนสุดท้าย
ดูส่วน XML ต่อไปนี้:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
ใน XML ด้านบน องค์ประกอบ <title> เป็นองค์ประกอบย่อยขององค์ประกอบ <book> และองค์ประกอบ <price> เป็นองค์ประกอบย่อยสุดท้ายขององค์ประกอบ <book>
นอกจากนี้ องค์ประกอบ <book> ยังเป็นโหนดหลักขององค์ประกอบ <title>, <author>, <year> และ <price>