偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

給XML初學(xué)者

開(kāi)發(fā)
差不多每天都有人問(wèn)“什么是XML”,“XML能做什么”,“XML能不能替我做這個(gè)”,“XML會(huì)取代什么”等等諸如此類的問(wèn)題。由于最近一段時(shí)間稍微對(duì)xml使用了一下,我來(lái)談?wù)勛约旱母杏X(jué)。這些經(jīng)驗(yàn)都很淺顯,任何一個(gè)用過(guò)xml的人都有,并且見(jiàn)仁見(jiàn)智,只不過(guò)我算剛剛走過(guò)這段路,對(duì)自己一開(kāi)始的困惑,誤解還記得清,所以拿出來(lái)和大家分享一下。

  我覺(jué)得XML初學(xué)者可能會(huì)走近的誤區(qū):

  1.XML是不是HTML的取代者

  不是。寫得好的html應(yīng)該是一個(gè)well-formed的xml文檔,其他方面最好不要把他們放在一個(gè)水平線上比較

  2.XML是不是數(shù)據(jù)庫(kù)的取代者

  不是。

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

  都不是。

  這個(gè)結(jié)論可能聽(tīng)上去很滑稽:XML是非常非常重要的東西,但它什么都取代不了。但這并不奇怪,有人把它比做ASCII標(biāo)準(zhǔn),他們是一切一切的基礎(chǔ),但并沒(méi)有(也不需要)取代什么。(但是就如同ASCII取代了一些沒(méi)有成大器的字符集定義,XML也會(huì)取代你在應(yīng)用中自己定義的一些數(shù)據(jù)傳輸規(guī)范,但沒(méi)有什么特別主流的東西。)

  剛開(kāi)始學(xué)XML(或者說(shuō)沒(méi)開(kāi)始學(xué)之前)的時(shí)候最愛(ài)問(wèn)的一個(gè)問(wèn)題肯定是:使用XML能給我?guī)?lái)什么好處?

  我覺(jué)得從某種角度上說(shuō),使用XML有些象使用OO面向?qū)ο螅?/p>

  你可以用它,你也可以不用它。如果你的應(yīng)用非常簡(jiǎn)單,用它不一定方便,沒(méi)準(zhǔn)兒用了效果還會(huì)更差。和其他實(shí)際東西比如數(shù)據(jù)庫(kù),MTS,WebServer比起來(lái),它更像是一個(gè)概念,一種方法。項(xiàng)目越大,它的發(fā)揮余地越大,作用越大。一旦真正理解后,哪怕不用xmlparser,也不妨礙你使用這個(gè)概念,如同可以拋開(kāi)特定語(yǔ)言使用OO。

  好像更抽象,更沒(méi)譜兒了吧。

  那就隨便舉個(gè)例子。比如你本來(lái)想在bbs應(yīng)用中的兩個(gè)模塊之間傳一些數(shù)據(jù):發(fā)言人、密碼、標(biāo)題、內(nèi)容。使用四個(gè)參數(shù)是不太現(xiàn)實(shí)的,因?yàn)槟汶S時(shí)可能要擴(kuò)展功能,比如再加上個(gè)表情符號(hào)等等。不可能每次加個(gè)功能,就重新定義一遍函數(shù)。所以最簡(jiǎn)單的方法是把他們合并起來(lái)作為一個(gè)參數(shù)傳遞給函數(shù)。在有xml之前,你可能會(huì)使用分隔符:str="發(fā)言人=張三;密碼=**;標(biāo)題=abc;內(nèi)容=xyz"。到server那邊使用dictionary或collection或split等等方法把他們拆開(kāi)。(當(dāng)然可以自己定義對(duì)象啦,結(jié)構(gòu)啦等等,但多數(shù)情況下還得是純字符串--比如另一個(gè)模塊不是自己開(kāi)發(fā)的。)

  這種傳遞字符串的方法有幾個(gè)問(wèn)題,總結(jié)成兩個(gè)最大的方面就是:

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

  2.是平面的,沒(méi)有層次型結(jié)構(gòu)

  你可以寫些函數(shù)來(lái)解決這些問(wèn)題,比如確保里面肯定有“發(fā)言人”,“密碼”等等;再寫些函數(shù)做一下字符轉(zhuǎn)義,再寫些函數(shù)制造出層次性的效果。夠了!咱還是用XML吧。

  在我目前淺顯的認(rèn)識(shí)里:XML是用來(lái)傳遞數(shù)據(jù)的;XML讓這些數(shù)據(jù)有了結(jié)構(gòu)--一個(gè)樹(shù)型結(jié)構(gòu);xml有全套的操作這種結(jié)構(gòu)的方法;xml規(guī)范(或者說(shuō)的實(shí)際點(diǎn),xmlparser)幫你確定你創(chuàng)建的字符串是合法的;xml規(guī)范(或者說(shuō)的實(shí)際點(diǎn),xmlparser)中有辦法驗(yàn)證這個(gè)合法性;對(duì)于拿到這個(gè)字符串的servercomponent來(lái)說(shuō),可以用xml中現(xiàn)成的方法來(lái)操作它。

  這就是xpath,pattern,類似于T-SQL語(yǔ)句(但記住xml是樹(shù)型結(jié)構(gòu)的)。XSLT使用xpath對(duì)xml進(jìn)行轉(zhuǎn)換(類似于DTS),其中一種特例是把XML轉(zhuǎn)換成HTML輸出。

【編輯推薦】

  1. XML編程與應(yīng)用教程
  2. XML入門之十一問(wèn)答
  3. XML的四個(gè)神話:XML屬于世界
  4. XML在使用中產(chǎn)生的二十個(gè)熱點(diǎn)問(wèn)題
  5. XML結(jié)構(gòu)與語(yǔ)法入門詳解
責(zé)任編輯:韓亞珊 來(lái)源: 軟件開(kāi)發(fā)網(wǎng)
相關(guān)推薦

2011-07-05 13:59:23

XML

2011-07-04 14:14:54

java

2016-11-18 17:40:35

2018-04-08 14:47:06

Linux命令type

2018-05-14 08:53:51

Linux命令shuf

2018-04-24 11:09:13

LinuxShellfc

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-04-08 15:07:40

C++

2022-06-15 15:30:29

Linux新用戶建議

2013-12-12 10:20:00

JavaScript學(xué)習(xí)

2009-06-23 13:32:48

JavaScript初竅門

2009-02-18 11:10:40

c++忠告方法

2016-11-11 20:33:53

Hadoop大數(shù)據(jù)云計(jì)算

2009-11-18 09:30:43

2022-03-28 09:52:42

JavaScript語(yǔ)言

2023-07-28 07:31:52

JavaScriptasyncawait

2011-05-18 11:01:39

Oracle

2023-07-03 15:05:07

預(yù)測(cè)分析大數(shù)據(jù)

2021-05-10 08:50:32

網(wǎng)絡(luò)管理網(wǎng)絡(luò)網(wǎng)絡(luò)性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)