CDATA section คืออะไร

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

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

<exampleOfACDATA>
<![CDATA[
   Since this is a CDATA section
   I CAN use all sorts of reserves characters
   like > < " and &
   or write things like
   <foo></bar>
]]>
</exampleOfACDATA>
  • ให้นำโค้ดด้านบนเซฟเป็น .html แล้วเปิดด้วย Firefox ครับ ผลที่ได้คือ แสดงผลในรูปแบบ plain text เพราะเป็น html ครับ
  • ใช้โค้ดด้านบนเหมือนเดิม แต่เซฟเป็น .xhtml แล้วเปิดด้วย Firefox ครับ ถ้าไม่มี CDATA ผลที่ได้คือ Parse error ครับ เพราะเป็น xhtml ซึ่งจะตีความ “>”, “<”, “&” เป็น markup
  • เพื่อแก้ปัญหานี้ เราต้องมี CDATA Section เพื่อบอกว่า text ของเรานั้นเป็น Character Data ไม่ใช่ markup ลองเซฟโค้ดด้านบนเป็น .xhtml แล้วเปิดด้วย Firefox ครับ ผลที่ได้คือ แสดงผลในรูปแบบ xml ได้อย่างถูกต้องครับ

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

Related posts:

This entry was posted in knowledge. Bookmark the permalink.