所有XML文檔中的文本均會被解析器解析。
只有CDATA區段(CDATA section)中的文本會被解析器忽略。
Parsed Data
XML解析器通常會解析XML文檔中所有的文本。
當某個XML元素被解析時,其標簽之間的文本也會被解析:
<message>此文本也會被解析</message>
解析器之所以這么做是因為XML元素可包含其他的元素,就像這個例子中,其中的<name>元素包含著另外的兩個元素(first 和 last):
<name><first>Bill</first><last>Gates</last></name>
而解析器會把它分解為像這樣的子元素:
以下為引用的內容: <name> <first>Bill</first> <last>Gates</last> </name> |
轉義字符
非法的XML字符必須被替換為實體引用(entity reference)。
假如您在XML文檔中放置了一個字符,例如"<",那么這個文檔會產生一個錯誤,這是因為解析器會把它解釋為新元素的開始。因此你不能這樣寫:
<message>if salary < 1000 then</message>
為了避免這個錯誤,您需要把字符"<"替換為實體引用,就像這樣:
<message>if salary < 1000 then</message>
在XML中有5個預定義的實體引用:
< < 小于
> > 大于
& & 和號
' ' 省略號
" " 引號
注釋:嚴格地講,在XML中僅有字符"<"和"&"是非法的。省略號、引號和大于號是合法的,但是把它們替換為實體引用是個好的習慣。
CDATA
CDATA內部的所有東西都會被解析器忽略。
假如您的文本中包含了大量的"<"和"&"字符 - 就像編程代碼中經常出現的情況一樣 - 那么這個XML元素就可以被定義為一個CDATA部分。
CDATA區段開始于"<![CDATA[",結束于"]]>":
以下為引用的內容: <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </script> |
在上面的例子中,在CDATA區段中的所有東西都會被解析器忽略。
關于CDATA區段的注釋:
CDATA區段不能包含字符串"]]>",所以,CDATA區段的嵌入是不被允許的。
同時也需要確保在"]]>"字符串中沒有空格或折行。
新聞熱點
疑難解答