2015年10月13日 星期二

在xml中儲存tag類型符號,使用

在XML中,任何Tag型式的東西都會被當成正規的XML結構節點,例如

<message><someText>myText</someText></message>

但是如果我們想要儲存在XML中的內容有Tag型式的東西,但又不希望被XML當成節點呢?例如我們想把一個網頁的html儲起來,內容像這樣:

<html>

<head></head>

<body><p>someText</p></body>

</html>


如果把上述的html直接寫進XML中就會出問題,這時我們需要用<![CDATA[...]]>標籤來告訴XML其包住的內容不要用XML的方式解析,像如下這樣:

<message>

      <someHtml>

      <![CDATA[<html><head></head><body><p>someText</p></body></html>]]>

      </someHtml>

</message>

下面是一些注意事項:
CDATA 區段的內容必須在 XML 內容所允許的字元範圍內;不能用這種方式逸出控制字元和相容性字元。 此外,CDATA 區段內不能出現序列 ]]>,因為這個序列會發出區段結束訊號。 這意味 CDATA 區段不可以是巢狀。 這個序列也出現在部分指令碼中。 在指令碼內,通常可使用 ] ]> 替代 ]]>
             from CDATA 區段 [XML 標準] 

參考資料:

  1. CDATA 區段 [XML 標準] 
  2. Ian 懶惰蟲筆記: CDATA 區段 - XML 標準

沒有留言 :

張貼留言