Posts

Showing posts with the label sax

Difference between SAX and DOM XML Parsing

Image
XML Parsing ในกระบวนการนำข้อมูล XML มาใช้งานใน Application นั้นจะมี XML Parser เป็นตัวกลางในการดึงข้อมูลจาก เอกสาร XML และ Application ซึ่งเป็น API ชนิดหนึ่ง โดย API ที่นิยมกันมากคือ DOM และ SAX ซึ่งต่างก็มีวิธีในการดึงข้อมูลที่แตกต่างกันคือ SAX vs DOM DOM จะมองเอกสาร XML ในลักษณะของโครงสร้างต้นไม้ (Tree) DOM ย่อมาจาก Document Object Model โดยมีหลักการในการอ่านเอกสาร XML มาวางเป็น Tree ในหน่วยความจำของเครื่องที่กำลังทำงาน ประกอบด้วย Element หรือ Attribute ต่างๆ การเข้าถึงข้อมูลจึงเป็นการเดินไปตามกิ่งก้านต่างๆ ทั้งเป็นแบบต่อเนื่องไปเรื่อยๆ หรือจะอ้างอิงกิ่งก้านเฉพาะเจาะจงลงไป หรือ Random access ก็ได้ ข้อจำกัดของ DOM ก็อยู่ตรงปริมาณหน่วยความจำของเครื่องว่าจะสามารถรองรับข้อมูลได้ ใหญ่แต่ไหน เพราะวิธี DOM จะทำการอ่านข้อมูลทั้งหมดมาเก็บไว้ในหน่วยความจำเพียงครั้งเดียว แต่ข้อดีคือ เขียน Code ง่ายกว่ามาก SAX จัดการเอกสาร XML ด้วยแนวทาง Event-Driven Simple API for XML คือชื่อย่อของ SAX โดย SAX จะไม่ load ข้อมูลทั้งหมดเข้ามาในหน่วยความจำ แต่จะอ่านเอกสารจาก ...