XML 轉義字元

2021-04-20 05:57:19 字數 1435 閱讀 6349

不合法的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文件。在使用程式讀取的時候,解析器會自動將...