XML CDATA
在XML文檔中的所有文本都會被解析器解析。
只有在CDATA部件之內的文本會被解析器忽略。
解析數據
XML 解析器通常情況下會處理XML文檔中的所有文本。
當XML元素被解析的時候,XML元素內部的文本也會被解析:
| <message>This text is also parsed</message> |
XML解析器這樣做的原因是XML元素內部可能還包含了別的元素,象下面的例子,name元素內部包含了first和last兩個元素:
| <name><first>Bill</first><last>Gates</last></name> |
解析器會認為上面的代碼是這樣的:
| <name> <first>Bill</first> <last>Gates</last> </name> |
?
轉義字符
不合法的XML字符必須被替換為相應的實體。
如果在XML文檔中使用類似"<" 的字符, 那么解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。所以不應該象下面那樣書寫代碼:
| <message>if salary < 1000 then</message> |
為了避免出現這種情況,必須將字符"<" 轉換成實體,象下面這樣:
| <message>if salary < 1000 then</message> |
下面是五個在XML文檔中預定義好的實體:
| < | < | 小于號 |
| > | > | 大于號 |
| & | & | 和 |
| ' | ' | 單引號 |
| " | " | 雙引號 |
實體必須以符號"&"開頭,以符號";"結尾。
注意: 只有"<" 字符和"&"字符對于XML來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是一個好習慣。
CDATA部件
在CDATA內部的所有內容都會被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
一個 CDATA 部件以"<![CDATA[" 標記開始,以"]]>"標記結束:
| <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </script> 文章來源:http://www.bcbbs.net/news/Content.aspx?id=183 |
在前面的例子中,所有在CDATA部件之間的文本都會被解析器忽略。
CDATA注意事項:
CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。
同樣要注意在字符串"]]>"之間沒有空格或者換行符。
轉載于:https://blog.51cto.com/dxwang/278493
總結
- 上一篇: 旧闻 - 来怀念一下Sun公司
- 下一篇: 在Asp.net中使用JQuery插件之