DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 給XML初學者
給XML初學者
編輯:XML詳解     

我覺得XML初學者可能會走近的誤區:

1.XML是不是Html的取代者

不是。寫得好的Html應該是一個well-formed的XML文檔,其他方面最好不要把他們放在一個水平線上比較

2.XML是不是數據庫的取代者

不是。

3.XML是不是...的取代者

都不是。

這個結論可能聽上去很滑稽:XML是非常非常重要的東西,但它什麼都取代不了。但這並不奇怪,有人把它比做ASCII標准,他們是一切一切的基礎,但並沒有(也不需要)取代什麼。(但是就如同ASCII取代了一些沒有成大器的字符集定義,XML也會取代你在應用中自己定義的一些數據傳輸規范,但沒有什麼特別主流的東西。)

剛開始學XML(或者說沒開始學之前)的時候最愛問的一個問題肯定是:使用XML能給我帶來什麼好處?

我覺得從某種角度上說,使用XML有些象使用OO面向對象:

你可以用它,你也可以不用它。如果你的應用非常簡單,用它不一定方便,沒准兒用了效果還會更差。和其他實際東西比如數據庫,MTS,WebServer比起來,它更像是一個概念,一種方法。項目越大,它的發揮余地越大,作用越大。一旦真正理解後,哪怕不用XMLparser,也不妨礙你使用這個概念,如同可以拋開特定語言使用OO。

好像更抽象,更沒譜兒了吧。

那就隨便舉個例子。比如你本來想在bbs應用中的兩個模塊之間傳一些數據:發言人、密碼、標題、內容。使用四個參數是不太現實的,因為你隨時可能要擴展功能,比如再加上個表情符號等等。不可能每次加個功能,就重新定義一遍函數。所以最簡單的方法是把他們合並起來作為一個參數傳遞給函數。在有XML之前,你可能會使用分隔符:str="發言人=張三;密碼=**;標題=abc;內容=xyz"。到server那邊使用dictionary或collection或split等等方法把他們拆開。(當然可以自己定義對象啦,結構啦等等,但多數情況下還得是純字符串--比如另一個模塊不是自己開發的。)

這種傳遞字符串的方法有幾個問題,總結成兩個最大的方面就是:

1.正確的解析它很麻煩。(比如標題正好是“發言人=張三;”怎麼辦)

2.是平面的,沒有層次型結構

你可以寫些函數來解決這些問題,比如確保裡面肯定有“發言人”,“密碼”等等;再寫些函數做一下字符轉義,再寫些函數制造出層次性的效果。夠了!咱還是用XML吧。

在我目前淺顯的認識裡:XML是用來傳遞數據的;XML讓這些數據有了結構--一個樹型結構;xml有全套的操作這種結構的方法;xml規范(或者說的實際點,xmlparser)幫你確定你創建的字符串是合法的;xml規范(或者說的實際點,xmlparser)中有辦法驗證這個合法性;對於拿到這個字符串的servercomponent來說,可以用XML中現成的方法來操作它。

這就是xpath,pattern,類似於T-SQL語句(但記住xml是樹型結構的)。XSLT使用xpath對xml進行轉換(類似於DTS),其中一種特例是把XML轉換成Html輸出。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved