XML中的轉義字元和CDATA部件
【yasi】CDATA 即 character data
解析資料
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>
為了避免出現這種情況,必須將字元"<" 轉換成實體,象下面:
下面是五個在XML文件中預定義好的實體:
< | < | 小於號 |
> | > | 大於號 |
& | & | 和 |
' | ' | 單引號 |
" | " | 雙引號 |
實體必須以符號"&"開頭,以符號";"結尾。
注意: 只有"<" 字元和"&"字元對於XML來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是一個好習慣。
CDATA部件
在CDATA內部的所有內容都會被解析器忽略
如果文字包含了很多的"<"字元和"&"字元——就象程式程式碼一樣,那麼最好把他們都放到CDATA部件中。
一個 CDATA 部件以"<![CDATA[" 標記開始,以"]]>"標記結束:
function matchwo(a,b)
{
if (a < b && a <0) then
{
return1
}
else
{
return0
}
}
]]></script>
在前面的例子中,所有在CDATA部件之間的文字都會被解析器忽略。
CDATA注意事項:
1.CDATA部件之間不能再包含CDATA部件(不能巢狀)。如果CDATA部件包含了字元"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。
2.同樣要注意在字串"]]>"之間沒有空格或者換行符。
<![CDATA[ ]]>是什麼意思???
=================================================
標明是純文字的,沒有這個的話 < > & 字元是不能直接存入XML的,需要轉義,而用這個標記則不需要轉義而將這些符號存入XML文件。
可以避免未預料的特殊符號導致XML解析出錯。
c#涉及到關於XML的CDATA和驗證有效性的問題
我剛開始學習XML的東西,這裡面我遇到一個叫做CDATA的段。這裡面的解釋是在CDATA裡面的所有東西都會被解析器忽略我不清楚這是什麼意思。用簡單的話來說就是CDATA什麼時候用,這裡面的東西有什麼用。如果用這個了,會產生什麼樣子的結果。
還有就是XML有效性的驗證。這個是什麼意思,為什麼要驗證有效性呢,一般怎麼驗證呢,方法如何?我看書上說有DTD和XML Schema的兩個方法,如何用,有什麼區別呢?
問題雖然多了點,但是就是兩個主要的問題。希望知道的大俠幫幫小弟,用通俗簡單一點的話告訴我。萬分感謝。
==================================================
當你用FLASH和xml結合做網站應用程式時,例如讓人自由輸入姓名時,人們可以輸入一些符號,例如∶"<"、">"、"/"、"?"等,當生成XML時,會破壞了XML結構,使資料中斷。
這就要用XML CDATA
在XML文件中的所有文字都會被解析器解析。
只有在CDATA部件之內的文字會被解析器忽略。
<![CDATA[ ]]>是什麼意思?~
Response.Write "<body><![CDATA["
Response.Write rs("message")
Response.Write "]]></body>"
============================================
標明是純文字的,沒有這個的話 < > & 字元是不能直接存入XML的,需要轉義,而用這個標記則不需要轉義而將這些符號存入XML文件。
可以避免未預料的特殊符號導致XML解析出錯。
PCDATA和CDATA的區別究竟是什麼呢?
=============================================
PCDATA表示已解析的字元資料。
CDATA是不通過解析器進行解析的文字,文字中的標籤不被看作標記。
CDATA表示裡面是什麼資料XML不會解析.比如可能是下面的一段
<![CDATA[
if(a>b){
System.out.println(a);
}
]]>
注意上面的一個">"符號.
PCDATA的資料是要給XML解析器去解析的,那上面的>去解析肯定會出錯了,所以要用實體定義.上面的資料如果用PCDATA表示如下:
if(a&gt;b){
System.out.println(a);
}
cdata是在XML文件裡面使用的關鍵字,用來告訴瀏覽器,這部分內容不用解析,是給其他程式用的,比如JAVASCRIPT等等,#PCDATA是在 XML約束文件裡使用的,如DTD型別的約束文件,在這裡面表示元素的內容或屬性的取值範圍等等,是字串形式的,
相關推薦
XML中的轉義字元和CDATA部件
【yasi】CDATA 即 character data 解析資料 XML 解析器通常情況下會處理XML文件中的所有文字。 當XML元素被解析的時候,XML元素內部的文字也會被解析: <message>This text is also pars
android xml中轉義字元的使用
如果一段文字需要多個TextView拼貼,比如:“我叫XXX,今年XX歲了,身高X.X米”; 可以考慮引用string.xml檔案中預定義的字串拼接實現. 例子: 1.在string.xml中先定義好格式 <string name="hello">St
Java| Java中轉義字元和路徑符
在java的實際開發中,經常會遇填寫一個檔案的相對路徑或者是絕對路徑的問題,對於初學者來說,經常犯難的是到底是用\ 還是用/的問題,本文將徹底解決這個問題的困擾. 先來看要下路徑符號在windows系統和再linux系統寫的顯示使用的區別: Windows下
Java中xml轉義字元和gt,gte,lt,lte縮寫
java mybatis XML檔案中不允許出現">"、"<"之類的符號。需要轉義 欄位 符號 說明 < ; < 小於號 >
XML學習(簡介、語法、註釋、轉義字元、CDATA區)
XML簡介 - XML:可擴充套件標記語言 - 可擴充套件:HTML的標籤是預定義的,可以直接拿來使用,但XML語言的標籤是自定義的。標籤名可以自定義,標籤中的屬性也可以自定義 - XML可以解決的問題:處理資料之間的關係 - XML常見應用: (1)XML可以儲存資料。(類似小
.xml轉義字元和忽略解析
1.轉移字元: 不合法的XML字元必須被替換為相應的實體。 例如:如果在XML文件中使用類似"<" 的字元, 那麼解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。 應該將其轉為實體。 XML中預定義的實體: < < 小於號 &a
printf中語言轉義字元和格式控制符的介紹
轉義字元參考: /a:蜂鳴,響鈴/b:回退:向後退一格/f:換頁/n:換行,游標到下行行首/r:回車,游標到本行行首/t:水平製表/v:垂直製表//:反斜槓/’:單引號/”:雙引號/?:問號/ddd:三位八進位制/xhh:二位十六進位制/0:空字元(NULL),什麼都不做
xml中的DTD和schema
stun 轉義 是否 xml語法 target san int log 概述 XML的文檔聲明<?xml version="1.0" encoding="UTF-8" ?> xml轉義字符 <![CDATA[內容]]> 實例: <![CDAT
mapper.xml中轉義
1、用轉義字元轉義 XML轉義字元 < &
XML處理轉義字元
轉自:https://www.cnblogs.com/catgatp/p/6403382.html 被<![CDATA[]]>這個標記所包含的內容將表示為純文字,比如<![CDATA[<]]>表示文字內容“<”。 此標記用於xml文件中,我們先來看
細說 Java 中的字元和字串( 一 )
一道經典問題 Java裡的char型別能不能儲存一箇中文字元? 對於這道題,絕大多數的答案都是“可以儲存”。給出的原因包括: 1. java中的char是unicode儲存,unicode編碼字符集中包含了漢字,所以可以儲存中文; 2. java內部其實是使用的UTF-16
160311、mybatis sql語句中轉義字元
問題: 在mapper ***.xml中的sql語句中,不能直接用大於號、小於號要用轉義字元 解決方法: 1、轉義字串 小於號 < < 大於號 >
回車換行的不同以及 轉義字元和ASCII碼值—(附ASCII碼錶)
問題來源: “回車”(carriage return)VS “換行”(line feed) 在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以
Android中轉義字元
下面是android中需要轉義的表: 字元 ASCII碼 轉義字元 “ " " & & &
mybatis xml中特殊字元處理
出處:http://yaobenzhang.blog.163.com/blog/static/214395113201561523017861/ 1,CDATA區: 它的全稱為character data,以"<![CDATA[ "開始,以" ]]>"
Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 標籤
摘錄某個工程的 web.xml 檔案片段: 訪問順序為1—>2—>3—>4,其中2和3的值必須相同。 url-pattern 標籤中的值是要在瀏覽器位址列中輸入的 url,可以自己命名,這個 url 訪問名為 servlet-name 中值的
《C語言及程式設計》資料——C語言中轉義字元
下面是C語言中的轉義字元及其意義:轉義字元意義ASCII碼值(十進位制)\a響鈴(BEL)007\b退格(BS) ,將當前位置移到前一列008\f換頁(FF),將當前位置移到下頁開頭012\n換行(LF
js中替換字串中轉義字元"\"的方法
查詢替換功能非常強大,但模板難記複雜。 JavaScript中String物件的match()、replace()這2個方法都要使用正則表示式的模板。當模板內容與字串不相匹配時,match()返回null,replace()返回原字串。 模板的用法是關鍵。flag:
android string.xml 中格式化字元
在string.xml中: <string name="reset_battery_low_dialog_message" formatted="false">"Battety is less than %1$d%, Can nott do that!"<
Java中轉義字元反斜槓 \ 的代替方法 | repalceAll 內涵解析
一、需求 現有一個字串str String str = "{\\\"name\\\":\\\"spy\\\",\\\"id\\\\":\\\"123456\\\"}"; System.out.println("str = " + str); 在控制檯的