深入解析XML中的字符實(shí)體與字符數(shù)據(jù)

字符實(shí)體
在我們了解字符實(shí)體之前,先了解一下什么是 XML 實(shí)體。
W3 聯(lián)盟 對實(shí)體的定義:文檔實(shí)體作為實(shí)體樹的根元素和 XML 處理程序的起點(diǎn)。
這意味著實(shí)體就是 XML 中的占位符。它們可以聲明在文檔序言或者DTD中。實(shí)體有不同的類型,本章后面會討論字符實(shí)體。
HTML 和 XML 都有一些符號被保留使用,它們不能在 XML 代碼中用作內(nèi)容。例如,< 和 > 符號被用作 XML 標(biāo)簽的開頭和結(jié)尾。要顯示這些特殊字符,就要使用字符實(shí)體。
有些特殊的字符或符號還不能直接使用鍵盤輸入。可以使用字符實(shí)體來顯示這些符號或特殊字符。
字符實(shí)體類型
有三種類型的字符實(shí)體:
預(yù)定義的字符實(shí)體。
編碼字符實(shí)體。
命名字符實(shí)體。
預(yù)定義的字符實(shí)體
引入它們是為了避免使用某些有歧義的符號。例如,當(dāng)我們把小于(<)或大于(>)符號當(dāng)尖括號(<>)使用時(shí)就會產(chǎn)生歧義。字符實(shí)體從根本上來說就是用來界定 XML 標(biāo)簽的。下面是一個(gè)來自 XML 規(guī)范的預(yù)定義字符實(shí)體列表。它們可以用來表示某些字符而不帶歧義。
和號: &
單引號: '
大于: >
小于: <
雙引號: "
數(shù)字字符實(shí)體
數(shù)字引用被用來表示字符實(shí)體。數(shù)字引用可以是十進(jìn)制或十六進(jìn)制格式。由于有數(shù)以千記的數(shù)字引用,導(dǎo)致很難記住它們。數(shù)字引用通過使用字符在 Unicode 字符集中的編碼數(shù)值來表示。
十進(jìn)制數(shù)字引用基本語法:
- &# decimal number ;
十六進(jìn)制數(shù)字引用基本語法:
- &#x Hexadecimal number ;
下面的表格列出了一些預(yù)定義字符實(shí)體和它們對應(yīng)的數(shù)值:
實(shí)體名稱 | 字符 | 十進(jìn)制引用 | 十六進(jìn)制引用 |
---|---|---|---|
quot | " | " | " |
amp | & | & | & |
apos | ' | ' | ' |
lt | < | < | |
gt | > | > | > |
命名字符實(shí)體
正如上面所說的,數(shù)值字符很難記住,最受歡迎的字符實(shí)體類型是命名字符實(shí)體。因?yàn)槊總€(gè)實(shí)體都用一個(gè)名稱標(biāo)識。
例如:
'Aacute' 表示帶重音符的大寫 A 字符。
'ugrave' 表示帶沉音符的小寫 u。
CDATA 片段
術(shù)語 CDATA 就是字符數(shù)據(jù)。CDATA 被定義為不由解析器解析的文本塊,但它被公認(rèn)為標(biāo)記。
標(biāo)記中預(yù)定義的實(shí)體比如 <,> 和 & 需要手動(dòng)輸入并且通常難以閱讀。這種情況下就可以使用 CDATA 片段。通過使用 CDATA 片段,我們可以告訴解析器文檔的特定部分不包含標(biāo)記,應(yīng)該被當(dāng)做普通文本對待。
語法
下面是 CDATA 片段的語法:
- <![CDATA[
- characters with markup
- ]]>
上面的語法由三個(gè)部分組成:
CDATA 開始部分 - CDATA 以9個(gè)字符的分隔符<![CDATA[開頭。
CDATA 結(jié)束部分 - CDATA 以 ]]> 分隔符結(jié)尾。
CData 部分 - 上面這兩個(gè)標(biāo)記之間的字符被解釋為字符而不是標(biāo)記。這個(gè)部分可以包含標(biāo)記字符(<,> 和 &),但是它們會被 XML 處理程序忽略。
示例
下面的標(biāo)記代碼展示了 CDATA。其中寫在 CDATA 片段中的字符都會被解析器忽略。
- <script>
- <![CDATA[
- <message> Welcome to TutorialsPoint </message>
- ]] >
- </script>
在上述的語法中,<message> 和 </message> 之間的所有內(nèi)容都會被當(dāng)做字符數(shù)據(jù)而不是標(biāo)記。
CDATA 規(guī)則
XML CDATA 需要遵循以下規(guī)則:
XML 文檔任何位置的 CDATA 都不能包含 "]]>" 字符。
CDATA 片段不可以嵌套。
相關(guān)文章
- 這篇文章主要介紹了詳解XML中的代碼注釋書寫方法,文章中總結(jié)了注釋使用的一些注意點(diǎn),比如XML不支持嵌套注釋等,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的屬性學(xué)習(xí)教程,包括使用屬性將數(shù)據(jù)存儲在子元素中的例子,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的標(biāo)簽與元素的使用,是XML入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的文檔與聲明用法,是XML入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-04
- 這篇文章主要介紹了XML標(biāo)記語言的基本概念及語法入門教程,XML同時(shí)也被廣泛用作標(biāo)記數(shù)據(jù)來作為XML數(shù)據(jù)交換格式,需要的朋友可以參考下2016-02-04
- WPS2016文檔怎么保存為XML格式?wps默認(rèn)的伯村格式是.doc,但是有的時(shí)候,必須使用xml格式的文件,該怎么把WPS的doc格式另存為xml格式呢?下面我們來看看詳細(xì)教程2015-11-05
批量導(dǎo)入XML數(shù)據(jù)到drupal系統(tǒng)的方法
這篇文章主要為大家介紹了批量導(dǎo)入XML數(shù)據(jù)到drupal系統(tǒng)的方法,主要通過一個(gè)XML文件導(dǎo)入類來實(shí)現(xiàn)這一功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-10flash+XML實(shí)現(xiàn)的3D層疊樣式疊加切換特效源碼
這是一款基于flash+xml實(shí)現(xiàn)的3D層疊樣式疊加切換特效源碼,并配以韓國網(wǎng)頁風(fēng)格的圖片。整體圖片切換效果流暢自然,中間顯示清晰的圖片,其他圖片模糊顯示,還可通過鼠標(biāo)點(diǎn)2014-09-03wordpress非插件實(shí)現(xiàn)xml格式網(wǎng)站地圖
這篇文章主要介紹了wordpress非插件實(shí)現(xiàn)xml格式網(wǎng)站地圖,需要的朋友可以參考下2014-08-03