วันอาทิตย์ที่ 19 ตุลาคม พ.ศ. 2551

การติดต่อไฟล์ xml ด้วย xmlTextReader

การติดต่อไฟล์ XML ด้วย XmlTextReader จะเป็นการติดต่อแบบ SAX (Simple API for XML) ซึ่งจะมีลักษณะการทำงานเป็นแบบ อ่านข้อมูลเข้ามาทีละชุด โดยข้อมูลที่เข้ามานั้นอาจจะเป็น element หรือ text หรือ attribute ก็ได้ ดังนั้นข้อดีของการติดต่อไฟล์ XML ด้วย SAX คือสามารถติดต่อไฟล์ XML ที่มีขนาดใหญ่มากๆ ได้ดีเนื่องจากจะเป็นการอ่านข้อมูลมาทีละชุดจึงทำให้ใช้เนื้อที่ในหน่วยความจำน้อย และสามารถทำงานได้รวดเร็วเนื่องจากทำการอ่านข้อมูลมา 1 ชุดแล้วก็ดำเนินการประมวลผลได้เลยไม่ต่อรอให้ระบบอ่านข้อมูลมาจนหมด ส่วนข้อเสียคือการเพิ่ม/ลดข้อมูล และ การท่องไปยังข้อมูลต่างๆ ในไฟล์ XML จะทำได้ยากเพราะการทำงานของ SAX นั้นจะเป็นการทำงานเรียงจาก element แรกเรื่อยไปจนกระทั่งถึง element สุดท้าย

ตัวอย่าง Code

1 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

XmlTextReader ไม่ใช่ SAX ครับ ทั้งคู่เป็นคู่แข่งทางด้าน concept การประมวลผล XML ด้วยซ้ำ

SAX เป็นลักษณะ Push Model ที่มีการแยกตัวอ่าน(SAX library)และตัวประมวลผล(โปรแกรมเรา) ตัวอ่านจะอ่านทุก elements รวดเดียว ทุกๆ element ก็จะโยนให้ตัวประมวลผลจัดการ, แต่ XmlTextReader เป็น Pull Model ที่ตัวอ่านและตัวประมวลผลเป็นอันเดียวกัน ก็คือโปรแกรมเรา ส่วนคลาส XmlTextReader เป็นเพียงแค่ตัวช่วยอ่าน(หรือหัวอ่าน)เท่านั้น

นพ