《XML那些事...》->跟隨『我』學(xué)習(xí)XML...
By:0x584A Date:2015年9月25日
第一章 XML是什么?XML的快速入門
1.什么是XML? 首先讓我們來看一段代碼
XML(可擴(kuò)展標(biāo)記語(yǔ)言)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE class [
<!ELEMENT class ANY>
<!ELEMENT person (name,time,msg,data)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT msg (#PCDATA)>
<!ELEMENT data (#PCDATA)>
]>
<class>
<person>
<name>0x584A</name>
<time>2015年9月25日 10:24:41</time>
<msg>holle,world!</msg>
<!--這里是CDATA區(qū)間-->
<data><![CDATA[<XML的那些事...> -> 跟隨0x584A、學(xué)習(xí)XML.. ]]></data>
</person>
</class>
讓我們來看看在瀏覽器運(yùn)行后的具體展現(xiàn)效果:
2.XML主要運(yùn)用做什么的?
相信網(wǎng)齡久的同學(xué)都見過有文件后綴是.xml的,這便是我們所說的XML文件。
最早在HTML流行起來之后,W3C組織嫌HTML語(yǔ)言的局限性,所以推出來XML,其目的是用于替換HTML語(yǔ)言。
當(dāng)然,現(xiàn)在看來W3C的計(jì)劃并沒有成功。(然并卵⊙﹏⊙)
雖然XML并沒有取代HTML,但它其獨(dú)特的特性,讓其延續(xù)至今。
優(yōu)點(diǎn):
1. 高度自定義[標(biāo)簽]
2. 不同語(yǔ)言中的數(shù)據(jù)流通規(guī)范
3. XML是用來描述數(shù)據(jù)的。而在HTML中,數(shù)據(jù)是寫在HTML標(biāo)簽中的。
4. XML設(shè)計(jì)是用來描述數(shù)據(jù)的:重點(diǎn)是什么是數(shù)據(jù),怎么存放數(shù)據(jù)。而HTML則是用來顯示數(shù)據(jù):重點(diǎn)是怎么顯示數(shù)據(jù),及怎么更好的顯示數(shù)據(jù)。
一句話說明XML:XML是跨平臺(tái),與軟、硬件無關(guān)的,處理信息的工具(數(shù)據(jù)操作和數(shù)據(jù)傳輸?shù)墓ぞ?
額.. 來和大家分享一個(gè)笑話:
問:我該什么時(shí)候使用XML?
答:你可以在你的簡(jiǎn)歷里寫上你會(huì)XML..
3. 快速入門XML
根據(jù)上面最開始的那段代碼,讓我們來逐步分析下。
<?xml version="1.0" encoding="UTF-8"?>
第一條則是先進(jìn)行聲明,聲明這個(gè)XML版本為1.0,使用UTF-8字符集對(duì)其識(shí)別。
隨后的代碼則是用于DTD約束的。
<!-- 內(nèi)部 DOCTYPE 聲明 定義文檔是class類型文件 -->
<!DOCTYPE class [
<!-- 元素class 通過類別關(guān)鍵字ANY聲明元素,可包含任何可解析的數(shù)據(jù)組合 -->
<!ELEMENT class ANY>
<!-- 定義person元素內(nèi)有四個(gè)元素 注意:約束順序也是節(jié)點(diǎn)順序 -->
<!ELEMENT person (name,time,msg,data)>
<!-- 定義name元素 為#PCDATA類型 -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT msg (#PCDATA)>
<!ELEMENT data (#PCDATA)>
]>
那么這時(shí)就有人問了:
DTD是什么呢?
我們看看W3C上的解釋:
<b>文檔類型定義(DTD)可定義合法的XML文檔構(gòu)建模塊。它使用一系列合法的元素來定義文檔的結(jié)構(gòu)。</b>
額.. (其實(shí)就是句屁話,說了和沒說一樣...)
好吧,不吐槽了。其實(shí)就是給我們所寫的XML元素、屬性等做了規(guī)定限制,所寫的結(jié)構(gòu)必須遵循DTD約束。
讓我們來繼續(xù)看如下代碼:
<class>
<person>
<name>0x584A</name>
<time>2015年9月25日 10:24:41</time>
<msg>holle,world!</msg>
<!--這里是CDATA區(qū)間-->
<data><![CDATA[<XML的那些事...> -> 跟隨0x584A、學(xué)習(xí)XML.. ]]></data>
</person>
</class>
有沒有發(fā)現(xiàn)什么?
是的,沒錯(cuò)它就是個(gè)樹結(jié)構(gòu)。讓我們看看DTD約束中,首先定義了根節(jié)點(diǎn)class,隨后又定義了person元素并在
person元素內(nèi)部存在四個(gè)元素name、time、msg、data。
其中呢有一個(gè)奇怪的東西,我們稱之為CDATA 區(qū)段,只有在區(qū)間中的文本會(huì)被解析器忽略掉,所以它原樣輸出了特殊的符號(hào)<、>等...
好了、至此關(guān)于XML的快速入門結(jié)束了,你學(xué)會(huì)了多少呢? 下一章讓我們來學(xué)習(xí)XML的語(yǔ)法、元素及屬性吧 o(∩_∩)o