《XML那些事...》->跟隨『我』學(xué)習(xí)XML...
By:0x584A Date:2015年9月25日
第一章 XML是什么枚赡?XML的快速入門
1.什么是XML氓癌? 首先讓我們來看一段代碼
XML(可擴展標(biāo)記語言)
<?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>
讓我們來看看在瀏覽器運行后的具體展現(xiàn)效果:2.XML主要運用做什么的贫橙?
相信網(wǎng)齡久的同學(xué)都見過有文件后綴是.xml的贪婉,這便是我們所說的XML文件。
最早在HTML流行起來之后卢肃,W3C組織嫌HTML語言的局限性疲迂,所以推出來XML,其目的是用于替換HTML語言莫湘。
當(dāng)然尤蒿,現(xiàn)在看來W3C的計劃并沒有成功。(然并卵⊙﹏⊙)
雖然XML并沒有取代HTML幅垮,但它其獨特的特性腰池,讓其延續(xù)至今。
優(yōu)點:
1. 高度自定義[標(biāo)簽]
2. 不同語言中的數(shù)據(jù)流通規(guī)范
3. XML是用來描述數(shù)據(jù)的。而在HTML中示弓,數(shù)據(jù)是寫在HTML標(biāo)簽中的讳侨。
4. XML設(shè)計是用來描述數(shù)據(jù)的:重點是什么是數(shù)據(jù),怎么存放數(shù)據(jù)奏属。而HTML則是用來顯示數(shù)據(jù):重點是怎么顯示數(shù)據(jù)跨跨,及怎么更好的顯示數(shù)據(jù)。
一句話說明XML:XML是跨平臺囱皿,與軟勇婴、硬件無關(guān)的,處理信息的工具(數(shù)據(jù)操作和數(shù)據(jù)傳輸?shù)墓ぞ?
額.. 來和大家分享一個笑話:
問:我該什么時候使用XML嘱腥?
答:你可以在你的簡歷里寫上你會XML..
3. 快速入門XML
根據(jù)上面最開始的那段代碼咆耿,讓我們來逐步分析下。
<?xml version="1.0" encoding="UTF-8"?>
第一條則是先進行聲明爹橱,聲明這個XML版本為1.0,使用UTF-8字符集對其識別窄做。
隨后的代碼則是用于DTD約束的愧驱。
<!-- 內(nèi)部 DOCTYPE 聲明 定義文檔是class類型文件 -->
<!DOCTYPE class [
<!-- 元素class 通過類別關(guān)鍵字ANY聲明元素,可包含任何可解析的數(shù)據(jù)組合 -->
<!ELEMENT class ANY>
<!-- 定義person元素內(nèi)有四個元素 注意:約束順序也是節(jié)點順序 -->
<!ELEMENT person (name,time,msg,data)>
<!-- 定義name元素 為#PCDATA類型 -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT msg (#PCDATA)>
<!ELEMENT data (#PCDATA)>
]>
那么這時就有人問了:
DTD是什么呢椭盏?
我們看看W3C上的解釋:
<b>文檔類型定義(DTD)可定義合法的XML文檔構(gòu)建模塊组砚。它使用一系列合法的元素來定義文檔的結(jié)構(gòu)。</b>
額.. (其實就是句屁話掏颊,說了和沒說一樣...)
好吧糟红,不吐槽了。其實就是給我們所寫的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)什么事扭?
是的,沒錯它就是個樹結(jié)構(gòu)乐横。讓我們看看DTD約束中求橄,首先定義了根節(jié)點class,隨后又定義了person元素并在
person元素內(nèi)部存在四個元素name葡公、time罐农、msg、data催什。
其中呢有一個奇怪的東西涵亏,我們稱之為CDATA 區(qū)段
,只有在區(qū)間中的文本會被解析器忽略掉,所以它原樣輸出了特殊的符號<
溯乒、>
等...
好了夹厌、至此關(guān)于XML的快速入門結(jié)束了,你學(xué)會了多少呢裆悄? 下一章讓我們來學(xué)習(xí)XML的語法矛纹、元素及屬性吧 o(∩_∩)o