CDATA Section มีไว้ทำไม ?

หลายๆ คน คงเคยเห็น CDATA Section ที่มักจะใส่ไว้ใน markup script ใช่มั้ยครับ เรามาไขข้อสงสัยกันดีกว่า ว่า CDATA Section มันคืออะไร และมีไว้ทำไม

CDATA นั้นย่อมาจาก “Character Data” ครับ ซึ่งประโยชน์ของ CDATA Section ก็คือ มีไว้สำหรับ escape block ของ text ที่จริงๆ แล้วเป็น Character Data แต่มีลักษณะไปคล้ายกับ markup ครับ สาเหตุที่ต้อง escape ก็เพราะว่า ใน xhtml หรือ xml ถ้าเรามี text ในลักษณะดังกล่าว จะทำให้ Parser ทำงานผิดพลาดครับ ลองมาดูตัวอย่างกันเลยดีกว่า

  • ให้นำโค้ดด้านบนเซฟเป็น .html แล้วเปิดด้วย Firefox ครับ ผลที่ได้คือ แสดงผลในรูปแบบ plain text เพราะเป็น html ครับ
  • ใช้โค้ดด้านบนเหมือนเดิม แต่เซฟเป็น .xhtml แล้วเปิดด้วย Firefox ครับ ผลที่ได้คือ Parse error ครับ เพราะเป็น xhtml ซึ่งจะตีความ “>”, “<“, “&” เป็น markup

 

  • เพื่อแก้ปัญหานี้ เราต้องมี CDATA Section เพื่อบอกว่า text ของเรานั้นเป็น Character Data ไม่ใช่ markup ลองเซฟโค้ดด้านบนเป็น .xhtml แล้วเปิดด้วย Firefox ครับ ผลที่ได้คือ แสดงผลในรูปแบบ xml ได้อย่างถูกต้องครับ

จากตัวอย่าง ทั้ง 3 แบบ คาดว่าคงจะได้เห็นประโยชน์ของ CDATA Section กันแล้วนะครับ ทิ้งท้ายไว้สักนิดคือ หาก code ของเรา ไม่มี “>”, “<“, “&” เลย ก็ไม่จำเป็นต้องใช้ CDATA Section ครับ

(Visited 2,005 times, 1 visits today)

Leave a Reply