ส่วน CDATA คือ " ส่วนของเนื้อหาองค์ประกอบที่มีการทำเครื่องหมายสำหรับโปรแกรมวิเคราะห์คำเพื่อตีความว่าเป็นข้อมูลตัวอักษรเท่านั้นไม่ใช่มาร์กอัป "
วากยสัมพันธ์มันทำงานคล้ายกับความคิดเห็น:
<exampleOfAComment>
<!--
Since this is a comment
I can use all sorts of reserved characters
like > < " and &
or write things like
<foo></bar>
but my document is still well-formed!
-->
</exampleOfAComment>
... แต่มันยังคงเป็นส่วนหนึ่งของเอกสาร:
<exampleOfACDATA>
<![CDATA[
Since this is a CDATA section
I can use all sorts of reserved characters
like > < " and &
or write things like
<foo></bar>
but my document is still well formed!
]]>
</exampleOfACDATA>
ลองบันทึกสิ่งต่อไปนี้เป็น.xhtml
ไฟล์ ( ไม่ใช่ .html
) และเปิดโดยใช้ FireFox ( ไม่ใช่ Internet Explorer ) เพื่อดูความแตกต่างระหว่างความคิดเห็นและส่วนของ CDATA ความคิดเห็นจะไม่ปรากฏเมื่อคุณดูเอกสารในเบราว์เซอร์ในขณะที่ส่วน CDATA จะ:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" >
<head>
<title>CDATA Example</title>
</head>
<body>
<h2>Using a Comment</h2>
<div id="commentExample">
<!--
You won't see this in the document
and can use reserved characters like
< > & "
-->
</div>
<h2>Using a CDATA Section</h2>
<div id="cdataExample">
<![CDATA[
You will see this in the document
and can use reserved characters like
< > & "
]]>
</div>
</body>
</html>
สิ่งที่ควรทราบด้วยในส่วนของ CDATA คือพวกเขาไม่มีการเข้ารหัสดังนั้นจึงไม่มีวิธีรวมสตริง]]>
ไว้ในนั้น ข้อมูลตัวละครใด ๆ ที่มี]]>
จะต้อง - เท่าที่ฉันรู้ - เป็นโหนดข้อความแทน ในทำนองเดียวกันจากมุมมองการจัดการ DOM คุณไม่สามารถสร้างส่วน CDATA ซึ่งรวมถึง]]>
:
var myEl = xmlDoc.getElementById("cdata-wrapper");
myEl.appendChild(xmlDoc.createCDATASection("This section cannot contain ]]>"));
รหัสการจัดการ DOM นี้จะส่งข้อยกเว้น (ใน Firefox) หรือส่งผลให้เอกสาร XML ที่มีโครงสร้างไม่ดี: http://jsfiddle.net/9NNHA/