XML教程一:XML是什么? (轉(zhuǎn)自IBM)_動(dòng)易Cms教程
簡(jiǎn)介
XML,或稱為可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language),是一種您可以用來創(chuàng)建自己的標(biāo)記的標(biāo)記語(yǔ)言。它由萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)創(chuàng)建,用來克服 HTML(即超文本標(biāo)記語(yǔ)言(Hypertext Markup Language),它是所有網(wǎng)頁(yè)的基礎(chǔ))的局限。和 HTML 一樣,XML 基于 SGML ― 標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language)。盡管 SGML 已在出版業(yè)使用了數(shù)十年,但其理解方面的復(fù)雜性使許多本打算使用它的人望而卻步(SGML 也代表“聽起來很棒,但或許以后會(huì)用(Sounds great, maybe later)”)。XML 是為 Web 設(shè)計(jì)的。
我們?yōu)槭裁葱枰?XML?
HTML 始終是最成功的標(biāo)記語(yǔ)言。您幾乎可以在任何設(shè)備(從掌上電腦到大型機(jī))上查看最簡(jiǎn)單的 HTML 標(biāo)記,并且您甚至可以用合適的工具將 HTML 標(biāo)記轉(zhuǎn)換成語(yǔ)音和其它格式。既然 HTML 成功了,為什么 W3C 還要?jiǎng)?chuàng)建 XML 呢?為了回答這個(gè)問題,請(qǐng)查看下面這個(gè)文檔:
<p><b>Mrs. Mary McGoon</b>
<br>
1401 Main Street
<br>
Anytown, NC 34829</p>
HTML 的問題在于它是為人設(shè)計(jì)的。即使不用瀏覽器查看上面的 HTML 文檔,您和我也會(huì)知道那是某個(gè)人的郵政地址。(具體而言,它是美國(guó)某個(gè)人的郵政地址;即使您一點(diǎn)也不熟悉美國(guó)郵政地址的格式,您可能也會(huì)猜出這表示什么。)作為人,您和我具有理解大多數(shù)文檔的含義和意圖的聰明。遺憾的是機(jī)器不能做到。盡管這個(gè)文檔中的標(biāo)記告訴瀏覽器如何顯示該信息,但標(biāo)記沒有告訴瀏覽器信息是什么。您和我知道它是一個(gè)地址,但機(jī)器不知道。
顯示 HTML
要顯示 HTML,瀏覽器只需遵循 HTML 文檔中的指令即可。段標(biāo)記告訴瀏覽器在新的一行顯示,并且通常在前面有一個(gè)空行,而兩個(gè)換行標(biāo)記則告訴瀏覽器前進(jìn)到下一行,并且行之間沒有空行。盡管瀏覽器出色地將文檔格式化,但機(jī)器仍不知道這是地址。
處理 HTML
為了完成對(duì)樣本 HTML 文檔的討論,請(qǐng)考慮從該地址抽取郵政編碼的任務(wù)。下面是一個(gè)在 HTML 標(biāo)記中查找郵政編碼的算法(我有意使用脆弱的算法),假如您找到有兩個(gè) <br> 標(biāo)記的段落,那么郵政編碼就是第二個(gè)換行標(biāo)記下面第一個(gè)逗號(hào)之后的第二個(gè)詞。
盡管該算法對(duì)于這個(gè)示例起作用,但對(duì)于全世界許多完全有效的地址,該算法根本不起作用。即使您可以編寫算法來找出任何用 HTML 編寫的地址的郵政編碼,但許多具有兩個(gè)換行標(biāo)記的段落根本不包含地址。即便有可能編寫算法來查看任意 HTML 段落并找出其中的任意郵政編碼,也是極其困難的。
樣本 XML 文檔
現(xiàn)在讓我們來看一個(gè)樣本 XML 文檔。使用 XML,您可以給文檔中的標(biāo)記賦予某種含意。更重要的是,機(jī)器也輕易處理這樣的信息。您只需通過找到 <postal-code> 和 </postal-code> 標(biāo)記之間的內(nèi)容(技術(shù)上稱為 <postal-code> 元素),就可以從該文檔抽取郵政編碼。
<address>
<name>
<title>Mrs.</title>
<first-name>
Mary
</first-name>
<last-name>
McGoon
</last-name>
</name>
<street>
1401 Main Street
</street>
<city>Anytown</city>
<state>NC</state>
<postal-code>
34829
</postal-code>
- MAC錯(cuò)誤的解決方法
- 如何屏蔽動(dòng)易后臺(tái)導(dǎo)航里的某個(gè)功能菜單?
- 動(dòng)易.NET版本留言自動(dòng)選定欄目方法
- 動(dòng)易SiteFactoty整合Discuz!NT3.0
- 在任意位置獲取根節(jié)點(diǎn)ID標(biāo)簽
- 如何開啟SiteWeaver6.8的支持,反對(duì)功能
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之四----動(dòng)易系統(tǒng)安裝篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之三----數(shù)據(jù)庫(kù)篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之二----IIS、目錄環(huán)境配置篇
- 數(shù)據(jù)庫(kù)修復(fù),SQL Server 2005內(nèi)部操作不一致的處理
- 如何安裝動(dòng)易.net程序權(quán)限配置
- 為什么提示對(duì)Windows系統(tǒng)文件夾下的Temp目錄沒有訪問權(quán)限?
- 相關(guān)鏈接:
- 教程說明:
動(dòng)易Cms教程-XML教程一:XML是什么? (轉(zhuǎn)自IBM)
。