XML特殊符號處理
from http://hugedream.blogspot.com/2013/07/xml-c.html
XML(eXtensible Markup Language)具有跨平台,結構清楚,及能表達複雜結構資料的優點。所以在工作上,我們常用其來作為資料交換的工具。但有些符號對xml而言為特殊字 元,若我們在產生xml時對於這些特殊字元沒有作處理的話,則會造成瀏覽器在render XML或程式在parse xml時,產生錯誤......
先來看看XML常見的特殊符號有哪些:
| 特殊字元 | 替代字元 |
|---|---|
| < | < |
| > | > |
| & | & |
| ' | ' |
| " | " |
而處理特殊符號的方法,筆者知道有兩種,說明如下:
EX: <config>John & Mary</config> //欄位值中包含特殊符號&
1. 使用CDATA將欄位值包起來
<config><![CDATA[John & Mary]]></config>
<config><![CDATA[John & Mary]]></config>
如上,標籤值包含特殊符號時,可用CDATA將值包起來,被包含於其中的任何字元,都會被視為一般字元,如此瀏覽器或程式在處理上就不會有問題了。
2.使用替代字元
<config>John&Mary</config>
<config>John&Mary</config>
如上,我們用&的替代字元"&"來取代&,如此瀏覽器在render xml時,當看到替代字元,就會自動地將其轉換成&了。
還有一種情況是特殊符號出現在標籤的屬性內,因為CDATA只能用於標籤值,對於標籤的屬性值是無效的。此時只能用替代字元的方式來處理了。
EX:
<config option="<![CDATA[AB<C,DEF]]>">John</config>
→將CDATA加於標籤屬性值內是無效的
此時只能用替代字元的方式來處理了:
<config option="AB<C,DEF">John</config> ---> <config option="AB>C,DEF">John</config>
留言
張貼留言