xml文件中的一些特殊符號(hào)(&,<)的使用方法

xml文件配置

1. 問(wèn)題說(shuō)明

平時(shí)我們?cè)陧?xiàng)目文件的配置或者用xml進(jìn)行數(shù)據(jù)的存儲(chǔ)或傳輸時(shí),會(huì)遇到不能用一些特殊符號(hào)的問(wèn)題,比如我在之前學(xué)習(xí)c3p0的時(shí)候,編輯c3p0-config.xml中的jdbcUrl屬性:

jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true

會(huì)有很多報(bào)錯(cuò),凡是有&符號(hào)的地方,都會(huì)報(bào)錯(cuò)。

在這里插入圖片描述

嚴(yán)格地講,在 XML 中僅有字符 "<"和"&" 是非法的。省略號(hào)、引號(hào)和大于號(hào)是合法的。這時(shí),xml有兩種解決方案來(lái)處理這種問(wèn)題。

  1. CDATA
  2. 轉(zhuǎn)義字符

2. 方法詳解

1. CDATA

CDATA 指的是不應(yīng)由 XML 解析器進(jìn)行解析的文本數(shù)據(jù),在 XML 元素中,"<" 和 "&" 是非法的。"<" 會(huì)產(chǎn)生錯(cuò)誤,因?yàn)榻馕銎鲿?huì)把該字符解釋為新元素的開始。"&" 也會(huì)產(chǎn)生錯(cuò)誤,因?yàn)榻馕銎鲿?huì)把該字符解釋為字符實(shí)體的開始。某些文本,比如 JavaScript 代碼,包含大量 "<" 或 "&" 字符。為了避免錯(cuò)誤,可以將腳本代碼定義為 CDATA。

  • CDATA 部分中的所有內(nèi)容都會(huì)被解析器忽略。
  • CDATA 部分由 "<![CDATA[" 開始,由 "]]>" 結(jié)束。
<property><![CDATA["&&&&&&<<<<<<<"]]></property>

這樣就會(huì)被解析器忽略&&&&&&<<<<<<<,不會(huì)發(fā)生報(bào)錯(cuò)。但很明顯,這種方法很麻煩。

2. 轉(zhuǎn)義字符

在 XML 中有 5 個(gè)預(yù)定義的實(shí)體引用:

轉(zhuǎn)義字符 符號(hào) 名稱
&amp; & 和號(hào)
&lt; < 小于
&gt; > 大于
&apos; ' 省略號(hào)
&quot; " 引號(hào)
<property>&amp;&lt;&gt;&apos;&quot;</property>

雖然有些符號(hào)合法,但是把它們替換為實(shí)體引用不失為一個(gè)好的習(xí)慣。


在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • xml經(jīng)典總結(jié) XML(eXtensible Markup Language)是萬(wàn)維網(wǎng)聯(lián)盟(World Wide ...
    91數(shù)據(jù)閱讀 1,068評(píng)論 0 2
  • XML 指可擴(kuò)展標(biāo)記語(yǔ)言。標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。 ...
    神齊閱讀 886評(píng)論 0 3
  • ![CDATA[]]和轉(zhuǎn)義字符 被這個(gè)標(biāo)記所包含的內(nèi)容將表示為純文本,比如表示文本內(nèi)容“<”。 此標(biāo)記用于xml文...
    Alex_1799閱讀 1,365評(píng)論 0 1
  • 經(jīng)過(guò)兩天的奮戰(zhàn),終于把xml簡(jiǎn)略的過(guò)了一遍。 1.1XML介紹 xml是Extensible Markup lan...
    Ystrator閱讀 1,041評(píng)論 0 2
  • 所有 XML 文檔中的文本均會(huì)被解析器解析。只有 CDATA 區(qū)段(CDATA section)中的文本會(huì)被解析器...
    我弟是個(gè)程序員閱讀 2,273評(píng)論 0 3

友情鏈接更多精彩內(nèi)容