不合法的xml字元必須被替換為相應的實體。
如果在xml文件中使用類似"<" 的字元, 那麼解析器將會出現錯誤,因為解析器會認為這是乙個新元素的開始。所以不應該象下面那樣書寫**:
if salary < 1000 then
為了避免出現這種情況,必須將字元"<" 轉換成實體,象下面這樣:
if salary < 1000 then
下面是五個在xml文件中預定義好的實體:
<
<
小於號》
>
大於號&&和
''單引號"
"雙引號
實體必須以符號"&"開頭,以符號";"結尾。注意:只有"<" 字元和"&"字元對於xml來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是乙個好習慣。
在cdata內部的所有內容都會被解析器忽略。
如果文字包含了很多的"<"字元和"&"字元——就象程式**一樣,那麼最好把他們都放到cdata部件中。
乙個 cdata 部件以"" 標記開始,以"]]>"標記結束:
在前面的例子中,所有在cdata部件之間的文字都會被解析器忽略。
cdata部件之間不能再包含cdata部件(不能巢狀)。如果cdata部件包含了字元"]]>" 或者"" ,將很有可能出錯哦。
同樣要注意在字串"]]>"之間沒有空格或者換行符。
rss中出現了一些麻煩的字元,比如 &,®,™ 等。這些字元放到xml中,如果不做特殊處理,就會有錯誤產生。比如下面的xml:&
在ie 瀏覽器,以及一些解析用的dom中解析這個片段,就會產生錯誤。
在w3c的技術規範中,也可以看到這樣的字元不允許出現:
比如:對 text nodes 允許的字元有如下要求: the string value, except all ampersands are replaced by &, all open angle brackets (< ) are replaced by <, all closing angle brackets (> ) are replaced by >, and all #xd characters are replaced by
. 由於這些特殊字元比較多,我們在xml中替換的工作量比較大,我們可以在dtd檔案中作些定義:
比如dtd檔案中增加以下部分:
並在xml中定義這個xml檔案需要這個dtd支援:
這樣在xml檔案中出現 & ® ™ 這類特殊字元就不會再報錯了。
那裡羅列的特殊字元有近200個。
XML轉義字元
寫了個request2xml的方法,每當資料中有 符號時,封裝的xml就無法解析。發現了xml裡的cdata屬性,問題迎刃而解!在xml文件中的所有文字都會被解析器解析。只有在cdata部件之內的文字會被解析器忽略。xml 解析器通常情況下會處理xml文件中的所有文字。當xml元素被解析的時候,xm...
XML轉義字元
不合法的xml字元必須被替換為相應的實體。如果在xml文件中使用類似 的字元,那麼解析器將會出現錯誤。下面是五個在xml文件中預定義好的實體 和 amp 單引號 apos 雙引號 quot 大於號 gt 小於號 lt 小於號 大於號 和 單引號 雙引號 實體必須以符號 開頭,以符號 結尾。如果文字包...
xml轉義字元
被這個標記所包含的內容將表示為純文字,比如表示文字內容 此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如 這樣才能儲存進xml文件。在使用程式讀取的時候,解析器會自動將...