Warning: file_get_contents(/home/gcms/public_html/skin/datas/users/goro/skin/2017/amp.css): failed to open stream: No such file or directory in /home/gcms/public_html/Gcms/Amp.php on line 32
XML คืออะไร (ตอนที่ 5)

GORAGOD

XML คืออะไร (ตอนที่ 5)

การแสดงข้อมูล XML

จากตอนก่อนๆ เราจะเห็นได้ว่า XML เป็นเพียงข้อมูล ส่วน HTML นั้นคือการแสดงข้อมูล ดังนั้นเมื่อได้รับข้อมูล XML มาเราจึงไม่สามารถแสดงผลมันทันทีได้ เราต้องมีกระบวนการแยกเอาส่วนต่างๆของ XML ออกมาเพื่อจัดการแสดงผลตามส่วนต่างๆนั้นเช่น เอกสาร XML

<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>

เมื่อจัดการแสดงผลแล้วอาจเป็นรูปนี้

MESSAGE

To: Tove
From: Jani

Don't forget me this weekend!

โดยกระบวนการแสดงผล เกิดจากการ parse เอาข้อมูลของ XML ออกมาแล้วค่อยนำข้อมูลมาจัดการแสดงผล โดยการแทรกข้อความ tag หรือ HTML ที่ต้องการให้สวยงามซึ่งอาจมีรูปแบบแตกต่างจากนี้ได้ตามความต้องการ

จะเห็นได้ว่า เอกสาร XML เพียงเอกสารเดียวอาจทำให้เกิดเอกสารต่างๆกันได้หลายรูปแบบ (เพื่อตอกย้ำว่า XML เป็นเพียงข้อมูล) ขึ้นอยู่กับกระบวนการจัดการแสดงผล

กระบวนการ parse เอกสาร XML เพื่อจัดการแสดง มีได้หลายวิธี โดยหลักๆที่ใช้ ก็จะมีอยู่ 2 อย่าง ซึ่งมีข้อดีข้อเสียต่างๆกันคือ
1. DOM (Document Object Model) เป็นวิธีที่ประมวลโครงสร้างของเอกสาร XML ให้เป็นโครงสร้างแบบต้นไม้ เพื่อให้แอพพลิเคชั่นสามารถเข้าหาจุดต่าง ๆ ของโครงสร้างต้นไม้ได้ โดยที่ DOM จะโหลดไฟล์ XML ทั้งไฟล์ใน Memory ซึ่งก็มีทั้งข้อดีและข้อเสีย คือ
     ข้อดี คือ ครั้งแรกสุดที่มีการเรียกใช้งานจะช้า แต่หลังจากนั้นการเข้าถึงจุดต่าง ๆ ของไฟล์ จะเร็วเพราะถูกเก็บใน memory แล้ว
     ข้อเสีย คือ ไม่เหมาะกับ file XML ที่มีขนาดใหญ่ โดยที่ขอบเขตจะถูกจำกัดด้วยหน่วยความจำที่เรียกใช้ในขณะนั้น
2. SAX (Simple API for XML) เป็นการทำงานแบบ event-based API คือจะรายงานข้อมูลตั้งแต่จุดเริ่มต้นและสิ้นสุดของ elements ต่าง ๆ ไปให้แอพพลิเคชั่นโดยไม่ต้องมีการสร้างโครงสร้างแบบต้นไม้ขึ้นมา ซึ่งจะเข้าถึงเอกสาร XML ทำงานได้ง่ายและไม่ซับซ้อน และที่สำคัญผู้ใช้สามารถทำ parsing เอกสารที่มีขนาดใหญ่กว่าปริมาณหน่วยความจำได้

ตัวอย่าง กระบวนการ parse ในแบบ DOM ก็คือในบทที่ 21 ถึง บทที่ 27 ครับ ส่วนกระบวนการ parse ในแบบ SAX นั้นก็ได้แก่บทที่ 32, 34, 35, 37, 38 และ 39