锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浣滆?Jimmy Zhang;rainy14f(浣滆呯殑blog:http://shaofan.blogjava.net/)
姒傝
VTD-XML鏀瑰彉?shù)簡(jiǎn)娓告?/span>
璧勬簮
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=933706
鍋氫負(fù)涓嬩竴浠EB搴旂敤鐨勬帹鍔ㄦф妧鏈紝XML鐩稿綋綆鍗曪紝鏄撳鏄撶敤銆傜劧鑰岋紝褰撳墠鐨刋ML澶勭悊鎶鏈嵈闈炲姝ゃ侱ocument Object Model鍜孲imple API for XML閮芥瘮杈冩參錛屼綆鏁堬紝涓斾笉鏄撲簬浣跨敤銆俈TD-XML錛屼綔涓轟笅涓浠g殑XML澶勭悊妯″瀷錛屾彁渚涜秴瓚奃OM鍜孲AX鐨勫箍娉涚敤閫斿拰鏇翠匠閫夋嫨錛屼笉浠呭彲浠ョ畝鍖朮ML緙栫▼錛屼篃浣塊夋嫨XML澶勭悊妯″瀷鏇村姞瀹規(guī)槗銆傝繖綃囨枃绔犻氳繃鏈榪戠殑鍩哄噯嫻嬭瘯鏁版嵁鍜岀ず渚嬬▼搴忔潵紿佹樉瀹冪殑鍏抽敭鎬х殑鎶鏈紭鍔匡紝鏄劇ず鍑篤TD-XML灝嗗彲鑳借В鍐抽暱鏈熶互鏉ュ洶鎵頒紒涓氭灦鏋勭殑錛屽湪DOM鍜孲AX涔嬮棿榪涜鎶夋嫨鐨勯棶棰樸?br />
鑷粠璇炵敓浠ユ潵鐨勫叓騫撮噷錛孹ML浣滀負(fù)涓涓紑鏀撅紝鍗婄粨鏋勫寲鐨勬暟鎹牸寮忓拰W(xué)EB搴旂敤鐨勬暟鎹氦鎹㈠伐鍏鳳紝宸插彇寰椾簡(jiǎn)闀胯凍榪涙銆傜敱浜庡畠鐨勭畝鏄撴у拰鑹ソ鐨勫彲璇繪э紝XML鍙楀埌寮鍙戜漢鍛樼殑鐑儓嬈㈣繋錛屽茍涓斿凡緇忔垚涓轟簡(jiǎn)浼佷笟鏋舵瀯涓嶅彲鍒嗗壊鐨勪竴閮ㄥ垎銆?br />
铏界劧寰堥毦璇存竻XML鍒板簳鏈夊灝戠涓嶅悓鐨勫簲鐢紝浣嗚嚦灝戞湁涓鐐規(guī)槸鑲畾鐨勶細(xì)XML瑙f瀽澶勭悊宸叉垚涓哄悇縐嶅伐浣滅殑鍏堝喅浠誨姟銆傚疄闄呬笂錛屽喅瀹氫嬌鐢ㄥ摢縐嶈В鏋愬櫒涔熺粡甯告槸浼佷笟寮鍙戣呭湪欏圭洰涓繀欏婚鍏堣В鍐崇殑闂?shù)箣涓銆傞暱涔呬互鏉ワ紝榪欏叾瀹炲氨鏄湪涓ょ XML澶勭悊妯″瀷涔嬮棿鍋氬嚭閫夋嫨錛欴ocument Object Model (DOM) 鍜?Simple API for XML (SAX)銆?br />
綺楃湅涔嬩笅錛孌OM鍜孲AX鍚勮嚜鐨勪紭緙虹偣鍒氬ソ褰㈡垚浜掕ˉ銆侱OM浣跨敤鍐呭瓨?shù)繚瀛樺璞【l撴瀯錛涜孲AX鍒欏熀浜庝簨浠跺茍涓斾笉浣跨敤鍐呭瓨鏉ュ瓨鍌ㄤ換浣曟暟鎹傚洜姝わ紝DOM姣旇緝閫傚悎鏂囨。杈冨皬鑰屾暟鎹闂ā寮忓鏉傜殑鎯呭喌錛岀浉鍙嶆儏鍐典笅錛屽垯浣跨敤SAX銆?br />
鐒惰屼簨瀹炲嵈騫朵笉榪欎箞鍗曠函銆傚緢澶氭儏鍐典笅錛屽紑鍙戣呬笉鎯呮効浣跨敤澶嶆潅鐨凷AX錛屼絾鍙堜笉寰椾笉鐢紝鍥犱負(fù)娌℃湁鍏朵粬閫夋嫨銆傛澶栵紝鍗充嬌XML鏂囦歡鐨勫ぇ灝忓彧鏄◢寰ぇ浜庡嚑鐧綤錛孌OM鐨勫唴瀛樺紑閿鍜屾ц兘榪熸粸涔熶細(xì)鎴愪負(fù)媯樻墜鐨勯殰紕嶏紝浣垮緱紼嬪簭鏃犳硶杈懼埌欏圭洰鎵瑕佹眰鐨勬渶浣庢ц兘鐩爣銆?br />
閭d箞鏄惁SAX鐨勬ц兘鐪熷緱濂藉緱澶氾紵瀹為檯涓婏紝SAX鎵鍚瑰槝鐨勮В鏋愭ц兘鈥曗曢氬父姣擠OM蹇嚑鍊嶁曗曞父甯告槸涓嶇幇瀹炵殑銆備簨瀹炴樉紺猴紝SAX絎ㄦ嫏鐨勶紝鍙兘寰鍓嶇殑瑙f瀽涓嶄粎鍦ㄤ嬌鐢ㄦ椂鐩稿綋涓嶄究錛岃屼笖褰撴枃妗g粨鏋勭◢寰鏉傛椂錛屼篃浼?xì)閬囧埌鎬ц兘闂銆傚鏋滃紑鍙戜漢鍛樹(shù)笉鎯沖嬈℃壂鎻忔枃妗o紝閭d箞灝遍渶瑕佸鏂囨。榪涜緙撳啿錛屾垨鏋勫緩鑷繁鐨勫璞℃ā鍨嬨?br />
涓嶇浣跨敤鍝鏂規(guī)硶錛屾ц兘閮戒細(xì)鎴愪負(fù)闂錛屾濡侫pache Axis鎵璇佹槑鐨勯偅鏍楓傚湪Axis鐨凢AQ欏甸潰錛屽畠澹扮О浣跨敤浜?jiǎn)SAX鏉ユ瀯寤洪珮鎬ц兘鐨勫疄鐜幫紝浣嗗畠浠嶇劧浣跨敤浜?jiǎn)浠栦滑鑷忿q殑鍜孌OM闈炲父鐩稿儚鐨勫璞℃ā鍨嬨備絾涓庡畠鐨勫墠浠?(Apache SOAP) 鐩告瘮錛岃繖縐嶅仛娉曞茍娌℃湁甯︽潵鏄庢樉鐨勬ц兘鎻愬崌銆傝屼笖錛孲AX鏃犳硶澶勭悊XPath錛屼竴鑸潵璇翠篃鏃犳硶椹卞姩XSLT (Extensible Stylesheet Language Transformation) 鐨勫鐞嗐傚洜姝わ紝SAX浠嶇劧鏃犳硶鐪熸瑙e喅XML澶勭悊涓殑闂銆?br />
涓轟簡(jiǎn)瀵繪壘涓涓洿鏄撶敤鐨凷AX鐨勫彇浠f柟妗堬紝瓚婃潵瓚婂鐨勫紑鍙戜漢鍛樺紑浣胯漿鍚慡tAX (Streaming API for XML)銆備笌SAX鐩告瘮錛孲tAX浣跨敤浠嶺ML鏂囦歡涓彁鍙栨爣璁扮殑鏂規(guī)硶錛岃屼笉鏄洖璋冦傝繖縐嶆柟妗堟樉钁楀湴鏀瑰杽浜?jiǎn)鍙敤鎬э紝浣嗕竴涓熀鏈殑闂?shù)粛鐒跺瓨鍦ㄢ曗昐tAX鐨勫彧鑳藉線鍓嶇殑瑙f瀽瀵逛簬紼嬪簭鍛樹(shù)緷鐒朵笉渚匡紝鑰屼笖瀛樺湪闅愯棌鐨勬ц兘鎹熷け銆?br />
搴曠嚎鏄細(xì)浠諱綍鎯沖緱鍒板箍娉涘簲鐢ㄧ殑XML澶勭悊妯″瀷錛屽繀闇鑳藉瀹屾暣浣撶幇XML鐨勫眰嬈$粨鏋勩傝繖鏄洜涓猴紝XML鏄璁捐涓哄湪WEB涓婁紶杈撳鏉傛暟鎹殑錛屽洜姝ゅ畬鏁村睍鐜板畠鐨勭粨鏋勪俊鎭篃鏄畠鐨勪換鍔′箣涓銆?/p>
鍋囪鎴戜滑瑕佷粠澶村紑濮嬩竴涓猉ML澶勭悊榪囩▼錛屽茍鍏嬫湇涓婇潰鎻愬埌鐨凞OM鍜孲AX鐨勭縐嶇己鐐癸紝閭d箞榪欎釜鏂扮殑妯″瀷搴旇鍏鋒湁浠ヤ笅灞炴э細(xì)
* 闅忔満璁塊棶鑳藉姏錛氬鐞嗘ā鍨嬪簲璇ュ厑璁稿紑鍙戜漢鍛樻柟渚胯闂枃妗g殑鏌愮灞傛緇撴瀯錛屾瘮濡傦紝浣跨敤XPath錛屾垨鎵嬪姩銆?br />* 楂樻ц兘錛氭ц兘涓婁笌DOM鍙?qiáng)SAX鐩告瘮錛屽簲鏈夋樉钁楁彁楂橈紝鑰屼笖榪欎釜鈥滄ц兘鈥濆簲璇ユ槸鐪熷疄鐨勶紝灝辨槸璇達(dá)紝搴旇鎶婂緩绔嬫枃妗e眰嬈$粨鏋勭殑鏃墮棿涔熺畻涓娿?br />* 浣庡唴瀛樺崰鐢ㄧ巼錛氳浣胯妯″瀷鑳藉琚箍娉涘簲鐢ㄤ簬鍚勭鍦烘櫙錛屼笉綆℃枃浠剁殑澶у皬錛岄偅瀹冨氨蹇呴』鑳藉浠ユ渶浣庣殑鍐呭瓨娑堣楁潵琛ㄧ幇XML鐨勭粨鏋勩?br />
VTD-XML灝辨槸涓涓疄鐜頒簡(jiǎn)榪欎簺鐩爣鐨勪笅涓浠g殑寮婧怷ML澶勭悊妯″瀷銆傚畠鐩告瘮浜嶥OM鍜孲AX鏈夌潃鏈川鍜屽叏闈㈢殑鏀硅繘銆俈TD-XML鐨勪竴涓叧閿紭鍖栨槸闈炴彁鍙栫鍙?non-extractive tokenization)銆傚湪鍏跺唴閮紝VTD-XML鍦ㄥ唴瀛樹(shù)腑淇濆瓨瀹屾暣鍙?qiáng)鏈В鐮佺殑XML娑堟伅錛屽茍浣跨敤涓涓簩榪涘埗緙栫爜瑙勮寖鏉ュ敮涓鍦拌〃紺烘瘡涓鍙楓傝繖縐嶈鑼冭縐頒負(fù)Virtual Token Descriptor錛堣櫄鎷熺鍙鋒弿榪扮錛夈傛瘡涓猇TD璁板綍閮芥槸涓涓?4瀛楄妭鐨勬暣鏁幫紝瀹冨XML涓鍙風(fēng)殑闀垮害錛岃搗濮嬪亸縐婚噺錛岀被鍨嬶紝宓屽娣卞害榪涜浜?jiǎn)缂栫爜銆?br />
鍐嶇畝鍗曞湴浠嬬粛涓涓媀TD-XML鐨勫巻鍙詫紝涔熻浣犱細(xì)鎰熷叴瓚o細(xì)鏈鍒濊繖涓蹇墊槸琚敤鏉ュ湪鐗瑰畾紜歡璁懼涓婁嬌鐢紝浠ヤ嬌榪欎簺紜歡錛堝璺敱鍣紝浜ゆ崲鏈猴級(jí)鍙互楂橀熷鐞哫ML錛屾瘮濡侳PGA,ASIC銆傛鍚庯紝VTD-XML欏圭洰緇勫喅瀹氫嬌瀹冨紑婧愶紝騫朵簬2004騫翠簲鏈堝彂甯冧簡(jiǎn)VTD-XML鐨勬渶鍒濈増鏈紝0.5鐗堬紝鐢↗AVA瀹炵幇銆備粠閭f椂璧楓俈TD-XML緇忓巻浜?jiǎn)澶殝啤鏀箻q涘茍瓚婃潵瓚婃垚鐔熴傚湪0.8鐗堟湰涓紝C璇█鐗堟湰鐨刅TD-XML涓嶫AVA鐗堝悓鏃跺彂甯冦傚湪1.0鐗堜腑寮曞叆浜?jiǎn)瀵筙Path鐨勫唴寤烘敮鎸侊紝浜?005騫?0鏈堝彂甯冦傛渶鏂扮殑鐗堟湰鏄?.5鐗堬紝瀹冪殑瑙f瀽寮曟搸琚噸鏂扮紪鍐欎互瀹炵幇鏇村己鐨勬ā鍧楀寲鍜屾洿楂樼殑鎬ц兘銆?br />
鍚屾牱錛屽湪榪欎釜鐗堟湰涓繕鍑虹幇浜?jiǎn)涓涓柊鐨勭壒鎬э紝鍙綔緙撳啿閲嶇敤銆傚畠鐨勫熀鏈蹇墊槸錛屽綋XML搴旂敤闇瑕侀氳繃緗戠粶榪炴帴鏉ュ弽澶嶅湴璇誨叆XML鏂囨。鏃訛紝璇ュ簲鐢ㄤ細(xì)閲嶇敤鍦ㄧ涓嬈″鐞嗕腑鍒嗛厤鐨勫唴瀛樼紦鍐層傛崲鍙ヨ瘽璇達(dá)紝鍗充竴嬈″垎閰嶏紝澶氭浣跨敤銆傚氨VTD-XML鏉ヨ錛岃繖涓壒鎬у畬鍏ㄦ秷闄や簡(jiǎn)鍦ㄥ鐞哫ML榪囩▼涓緩绔嬪璞″拰鍨冨溇鍥炴敹鐨勫紑閿錛堝湪DOM鍜孲AX涓崰鐢?0%鑷?0%鐨勫紑閿錛夈傚湪璇ラ」鐩殑緗戠珯涓婏紝鎻愪緵鏈夋渶鏂扮殑杞歡涓嬭澆鍜屾繁灞傛妧鏈鏄庛?br />
涓涓畝鐭緥瀛?/span>
涓轟簡(jiǎn)浣夸綘鏇村ソ鍦頒簡(jiǎn)瑙TD-XML緙栫▼鐨勯鏍鹼紝鏈枃棣栧厛瀵圭敤VTD-XML鍜孌OM瑙f瀽鍜岃闂竴涓畝鍗曠殑XML鏂囦歡榪涜瀵規(guī)瘮銆傝鏂囦歡鍚嶄負(fù)test.xml錛屽唴瀹瑰涓嬶細(xì)<purchaseOrder orderDate="1999-10-21">
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <item partNum="872-AA">
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <productName>Lawnmower</productName>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <quantity>1</quantity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <USPrice>148.95</USPrice>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </item>
</purchaseOrder>
VTD-XML鐗堟湰鐨勭▼搴忓涓嬶細(xì)import com.ximpleware.*;
import com.ximpleware.parser.*;
import java.io.*;
public class use_vtd {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)public static void main(String[] args){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)try{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)File f = new File("test.xml");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)FileInputStream fis = new FileInputStream(f);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)byte[] ba = new byte[(int)f.length()];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)fis.read(ba);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)VTDGen vg = new VTDGen();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)vg.setDoc(ba);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)vg.parse(false);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)VTDNav vn = vg.getNav();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (vn.matchElement("purchaseOrder")){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println(" orderDate==>"
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)+ vn.toString(vn.getAttrVal("orderDate")));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (vn.toElement(VTDNav.FIRST_CHILD,"item")){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (vn.toElement(VTDNav.FIRST_CHILD)){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)do {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.print( vn.toString(vn.getCurrentIndex()));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.print("==>");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println( vn.toString(vn.getText()));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)} while(vn.toElement(VTDNav.NEXT_SIBLING));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch (Exception e){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println("exception occurred ==>"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
}
瀹炵幇鍚屾牱鍔熻兘鐨凞OM鐗堟湰鐨勭▼搴忥細(xì)import java.io.*;
import org.w3c.dom.*;
import org.w3c.*;
import javax.xml.parsers.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class use_dom {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)public static void main(String[] args){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)try{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)DocumentBuilderFactory factory =
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)DocumentBuilderFactory.newInstance();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)DocumentBuilder parser = factory.newDocumentBuilder();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Document d= parser.parse("test.xml");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Element root = d.getDocumentElement();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (root.getNodeName().compareTo("purchaseOrder")==0){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println(" orderDate==> "
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)+ root.getAttribute("orderDate"));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Node n = root.getFirstChild();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (n != null){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)do {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (n.getNodeType() == Node.ELEMENT_NODE
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)&& n.getNodeName().compareTo("item")==0){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Node n2 = n.getFirstChild();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (n2!=null){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)do {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)if (n2.getNodeType()
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)== Node.ELEMENT_NODE){聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println(
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)n2.getNodeName()
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)+ "==>" +
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)n2.getFirstChild().getNodeValue()
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}while((n2=n2.getNextSibling())!=null);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}while ((n=n.getNextSibling()) != null );
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)catch (Exception e){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)System.out.println("exception occurred ==>"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}
}
鍍忎互涓婃墍灞曠ず鐨勯偅鏍鳳紝VTD-XML浣跨敤鍩轟簬娓告爣鐨凙PI鏉ヨ闂甔ML灞傛緇撴瀯銆傜浉姣斾箣涓嬶紝DOM API閫氳繃璇鋒眰瀵硅薄鐨勫紩鐢ㄦ潵杈炬垚鍚屾牱鐩爣銆俈TD-XML鐨勯」鐩綉绔欐彁渚涙洿澶氳緇嗙殑鎶鏈祫鏂欏拰紺轟緥紼嬪簭銆?br />
VTD-XML鐨勫熀鍑嗘祴璇?/span>
涓嬮潰錛屾垜浠潵姣旇緝涓涓媀TD-XML涓浜涙祦琛岀殑XML瑙f瀽鍣ㄧ殑鎬ц兘鍜屽唴瀛樺崰鐢ㄦ儏鍐點(diǎn)傚煎緱娉ㄦ剰鐨勬槸錛屽鏁板寘鍚熀鍑嗘祴璇曟暟鎹殑鏂囩珷錛屽Dennis Sosnoski浜?002騫?鏈堝彂琛ㄥ湪JavaWorld涓婄殑鈥淴ML Documents on the Run鈥濓紝閮芥槸澶氬勾鍓嶇殑鏂囩珷銆傝嚜閭d互鍚庯紝濡傛懇灝?dāng)瀹氬緥鎵紺猴紝鏇村ソ鏇村揩鐨勭‖浠跺ぇ閲忔秾鐜板茍瓚婃潵瓚婁究瀹溿傚悓鏃訛紝XML瑙f瀽涓嶫VM鎶鏈篃騫舵湭姝㈡涓嶅墠鈥曗曞湪涓浜涘叧閿鍩熷仛鍑轟簡(jiǎn)鏀硅繘銆?br />
嫻嬭瘯璁劇疆
嫻嬭瘯騫沖彴鏄疭ony VAIO絎旇鏈數(shù)鑴戯紝浣跨敤Pentium M 1.7 GHz澶勭悊鍣紙2MB L2 cache錛夛紝512MB DDR2鍐呭瓨銆傚墠绔葷嚎棰戠巼涓?00MHz銆傛搷浣滅郴緇熶負(fù)Windows XP Professional Edition with Services pack 2銆侸VM鐗堟湰涓?.5.0_06銆?br />瀵逛互涓媂ML瑙f瀽鍣ㄧ殑鏈鏂扮増鏈繘琛屼簡(jiǎn)鍩哄噯嫻嬭瘯錛?br />*Xerces DOM 2.7.1, 甯︽湁鍙?qiáng)涓嶅甫鏈夊欢杩熻妭鐐规墿灞?deferred node expansion)
*Xerces SAX 2.7.1
*Piccolo SAX 1.04
*XPP3 1.1.3.4.O
*VTD-XML 1.5, 甯︽湁鍙?qiáng)涓嶅甫鏈壘~撳啿閲嶇敤
鍦ㄦ祴璇曚腑鎴戜嬌鐢ㄤ簡(jiǎn)澶ч噺涓嶅悓澶у皬鍜屼笉鍚屽鏉傜▼搴︾殑XML鏂囨。銆備粠鏂囨。澶у皬涓婏紝鎴戞妸瀹冧滑鍒嗕負(fù)涓夌被錛氬皬鏂囦歡錛堝皬浜?0KB錛夛紱涓枃浠訛紙10KB鑷?MB錛夛紱澶ф枃浠訛紙澶т簬1MB錛夈?br />鍦ㄥ叏閮ㄧ殑鎬ц兘搴﹂噺涓垜閮戒嬌鐢ㄤ簡(jiǎn)鏈嶅姟鍣ㄧ殑JVM鏉ヨ幏鍙栨渶楂樻ц兘銆傚湪榪欎簺嫻嬭瘯涓紝鍩哄噯嫻嬭瘯紼嬪簭棣栧厛浼?xì)澶殝啤瑙f瀽鎴栬畨K棶鏂囨。錛屼嬌JVM瀵瑰瓧鑺傜爜榪涜鍗蟲(chóng)椂鍔ㄦ佷紭鍖栵紝涔嬪悗鎵嶅彇寰楁ц兘鐨勫鉤鍧囧間綔涓烘渶緇堢粨鏋溿備負(fù)浜?jiǎn)鍑彏畱鐢变簬纾佺洏I(yè)O瀵艱嚧鐨勬椂闂村樊鍒紝鍩哄噯嫻嬭瘯紼嬪簭鍦ㄦ祴璇曡繍琛屼箣鍓嶅凡緇忔妸XML鏂囦歡璇誨叆鍒板唴瀛樹(shù)腑銆?br />
娉ㄦ剰錛氭湁鍏磋叮鐨勮鑰呭彲浠ヤ粠璧勬簮涓嬭澆鍩哄噯嫻嬭瘯紼嬪簭銆?br />
鍚炲悙閲忓姣旇В鏋?/strong>
鏈妭鍦ㄥ歡榪熸椂闂村拰鍚炲悙閲忎笂瀵筙ML瑙f瀽鎬ц兘榪涜鎻忚堪銆傝娉ㄦ剰鐨勬槸VTD-XML涓嶥OM鍙洿鎺ヨ繘琛屾瘮杈冿紝鑰屼笌SAX鎴朠ull鐩存帴瀵規(guī)瘮灝卞緢涓嶅叕騫籌紝鍥犱負(fù)瀹冧滑涓嶅湪鍐呭瓨?shù)腑鏋勫晦Z換浣曞眰嬈$粨鏋勩傚洜姝AX鍜孭ull鐨勬ц兘鍦ㄦ鍙綔涓洪澶栧弬鑰冦?br />鍚炲悙閲?br />
鍥?1. 灝忔枃浠?
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
鍥?2. 涓枃浠?
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
鍥?3. 澶ф枃浠?
寤惰繜鏃墮棿瀵規(guī)瘮
琛?1. 灝忔枃浠?br />
琛?2. 涓枃浠?br />
琛?3. 澶ф枃浠?br />
鍐呭瓨鍗犵敤鐜囧姣?br />鍥犱負(fù)SAX鍜孭ull涓嶅湪鍐呭瓨?shù)腑鏋勫晦Z換浣曟暟鎹粨鏋勶紝鎵浠ヨ繖欏規(guī)祴璇曞彧鏈変笌DOM鐨勫姣旀墠鏈夋剰涔夈傚洜姝わ紝鏈妭瀵瑰嶅姞緋繪暟(multiplying factor)榪涜琛¢噺錛岃緋繪暟涓哄唴瀛樺崰鐢ㄧ巼涓庡ぇ鏂囦歡鐨勬枃浠跺ぇ灝忎箣姣旓紙鍐呭瓨鍗犵敤瀵瑰ぇ鏂囦歡鐗瑰埆閲嶈錛夈?br />
鍥?4.
璁塊棶鎬ц兘瀵規(guī)瘮
鏈妭浠庡歡榪熸椂闂翠笂灞曠ずVTD-XML涓嶥OM 鐨勮闂ц兘銆傚歡榪熸椂闂存槸鎸囪闂枃妗d腑姣忎釜鑺傜偣鎵鑺辯殑鏃墮棿銆備負(fù)浜?jiǎn)閬嶅巻鎵鏈夎妭鐐癸紝DOM渚濊禆浜巒odeInterator鎺ュ彛錛岃孷TD-XML鍒欒皟鐢ˋutoPilot綾葷殑鎴愬憳鏂規(guī)硶selectElement(鈥?涓巌terate(鈥?銆傚鎵棰勬湡鐨勪竴鏍鳳紝璁塊棶閫熷害姣旇В鏋愰熷害瑕佸揩寰楀銆傚VTD-XML錛岃闂椂闂村紑閿鍦ㄨВ鏋愭椂闂村紑閿鐨?5%鍒?0%涔嬮棿銆傚DOM錛岃鏁板瓧涓?%鍒?%銆傝繖騫朵笉璇存槑VTD-XML鐨勮闂熷害鎱簬DOM銆傝繖瀹屽叏鏄洜涓篤TD-XML鏈夌潃闈炲父蹇殑瑙f瀽閫熷害銆?br />
琛?4. 灝忔枃浠?br />
琛?5. 涓枃浠?br />
琛?6. 澶ф枃浠?br />
緇撴灉鍒嗘瀽
鍦―ennis Sosnoski鍥涘勾鍓嶅彂琛ㄤ簬JavaWorld鐨勬枃绔犱腑錛孭iccolo鏄紬澶歋AX瀹炵幇涓殑璧㈠銆傜幇鍦ㄨ繖寰楀埌浜?jiǎn)鏀瑰彉锛?xì)鏈鏂扮殑Xerces鍑昏觸浼楀瀵規(guī)墜鎴愪負(fù)鎬ц兘鏈濂界殑SAX瑙f瀽鍣ㄣ傛祴璇曠粨鏋滀篃鏄劇ず錛屼笌Xerces鐩告瘮錛孹PP3涔熸湁鐩稿綋涓嶉敊鐨勬ц兘錛屼笉姣斿墠鑰呯浉宸緢澶氥?br />鍙﹀錛屾湁瓚g殑鏄紝褰撴枃浠惰緝?yōu)畯鏃跺Q孌OM涓嶴AX鐨勮В鏋愭ц兘宸窛騫朵笉鍍忓湪瑙f瀽澶ф枃浠舵椂鐨勭浉宸偅涔堝ぇ銆傚湪灝忔枃浠剁殑鎯呭喌涓嬶紝DOM鐨勫歡榪熻妭鐐規(guī)墿灞曞鑷存瘮浣跨敤瀹屽叏鑺傜偣鎵╁睍瑕佸樊鐨勮В鏋愭ц兘銆?br />
鑰孷TD-XML鐨勫嚭浼楁ц兘浣垮畠瀹屽叏鑳滆繃鍏朵粬浠諱綍瑙f瀽鍣紝榪欎嬌瀹冭嚜鎴愪竴綰с傜湡姝g殑姣旇緝鍙槸瀛樺湪浜庝嬌鐢ㄧ紦鍐查噸鐢ㄧ殑VTD-XML鍙?qiáng)涓嶄娇鐢ň~撳啿閲嶇敤鐨刅TD-XML涔嬮棿銆傚唴瀛樺崰鐢ㄧ巼涓婄殑閲嶅ぇ浼樺娍浣垮緱VTD-XML鍙互琚敤浜庡鐞嗗ぇXML鏂囨。錛屽茍涓斿浠繪剰澶у皬鐨勬枃浠墮兘鏈夎緝濂界殑鎬ц兘銆?br />
緇撹
VTD-XML鏄竴縐嶅叏鏂扮殑錛屼笅涓浠g殑XML瑙f瀽鍣ㄣ傚畠瑙e喅浜?jiǎn)璁稿鐩墠鍥版壈DOM鍜孲AX鐨勯棶棰樸俈TD-XML楂樻ц兘涓庝綆鍐呭瓨鍗犵敤鐨勭粨鍚堟剰鍛崇潃錛氶鍏堬紝DRAM宸茬粡鐩稿綋渚垮疁錛屽鏋滀笉鏄畬鍏ㄦ病鏈夌┖闂村瓨鏀綳ML鏂囨。錛岄偅灝辨病鏈夊灝戠悊鐢變嬌鐢⊿AX錛涘叾嬈★紝浣跨敤VTD-XML浣垮緱搴旂敤鍙樺緱鏇村姞綆鍗曪紝鏇村揩銆傚畠瀵瑰悇縐嶅ぇ灝忕殑鏂囦歡鐨勯傚簲鎬э紝浣垮緱閫夋嫨涓涓悎閫傜殑XML澶勭悊妯″瀷鍙樺緱綆鍗曪紝鑰屽紑鍙戜漢鍛樹(shù)篃涓嶅繀鍐嶅湪瀹屽叏涓嶅悓鐨凞OM鍜孲AX涓繘琛屽垏鎹簡(jiǎn)錛涙渶鍚庯紝VTD-XML鍙互涓洪暱涔呬互鏉ュXML鐨勪笉婊℃彁渚涗竴涓護(hù)浜轟俊鏈嶇殑絳旀銆傛瘮濡傦紝VTD-XML鍐呭緩浜?jiǎn)鏈湴XML绱㈠紩鐨勮兘鍔涳紝涔熻鍙互姘鎬箙鏀瑰彉璁や負(fù)XML閫熷害鎱㈢殑鐪嬫硶銆傛鐢變簬瀹冪殑鎬ц兘浼樺娍錛孷TD-XML搴旇鏍囧織鐫鈥?0鍊嶉焁ML鈥濇椂浠g殑鍒版潵銆傛洿閲嶈鐨勬槸錛孷TD-XML鐨勪笅涓绔欙紝鍙湪鍜昂涔嬮仴錛岄偅灝辨槸鈥?00鍊嶉焁ML鈥濄?/p>
*VTD-XML:http://vtd-xml.sf.net/
*Apache Axis FAQ:http://ws.apache.org/axis/faq.html#faq1
*涓嬭澆鍩哄噯嫻嬭瘯紼嬪簭:http://sourceforge.net/project/showfiles.php?group_id=110612
]]>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)SAXBuilder sb = new SAXBuilder();
聽(tīng)聽(tīng) try
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Document doc = sb.build(path);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element root = doc.getRootElement();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element subroot=root.getChild("entity");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element content=subroot.getChild("contents");
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) List entities=content.getChildren("entity");
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) for(int j=0;j<entities.size();j++)
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) {
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) Element _element=(Element)entities.get(j);
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) if(_element.getChild("nick").getText().equals(catalog))
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) System.out.println(_element.getChild("nick").getText());
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) System.out.println(_element.getChild("description").getText());
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) content.removeContent(_element);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //_element.removeContent(_element);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Format format = Format.getCompactFormat();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) format.setEncoding("UTF-8"); //璁劇疆xml鏂囦歡鐨勫瓧絎︿負(fù)UTF-8
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) format.setIndent("聽(tīng)聽(tīng)聽(tīng) "); //璁劇疆xml鏂囦歡鐨勭緝榪涗負(fù)4涓┖鏍?/em>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) XMLOutputter xmlOutput = new XMLOutputter(format);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) xmlOutput.output(root, new FileOutputStream(path));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) catch(Exception e)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) e.printStackTrace();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
XML鏂囦歡鐗囷細(xì)
聽(tīng)<entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鏂囨。鐩綍綆$悊</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/globe.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/globe_selected.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <contents>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>1</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>妗f綆$悊紼嬪簭</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/book.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/bookOpen.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <contents>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>1</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)妗f鏌ヨ鐧昏琛?lt;/description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)妗f鏌ヨ鐧昏琛?lt;/title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/1/1.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>2</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)妗f綆$悊紼嬪簭</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)妗f綆$悊紼嬪簭</title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/1/2.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>3</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>lnic浜哄憳綆$悊鍔炴硶</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>lnic浜哄憳綆$悊鍔炴硶</title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/1/3.txt</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </contents>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>2</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>瀵瑰涓氬姟</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/book.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/bookOpen.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <contents>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>1</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)渚涘簲鍟嗚皟鏌ユ姤鍛?lt;/description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)渚涘簲鍟嗚皟鏌ユ姤鍛?lt;/title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/1.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>2</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍥芥湁璧勪駭鐢寵喘鍗?lt;/description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍥芥湁璧勪駭鐢寵喘鍗?lt;/title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/2.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>3</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍚堟牸渚涘簲鍟嗗悕褰?lt;/description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍚堟牸渚涘簲鍟嗗悕褰?lt;/title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/3.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>4</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)榪涜揣璐ㄩ噺楠屾敹璁″垝</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)榪涜揣璐ㄩ噺楠屾敹璁″垝</title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/4.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>5</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍩硅鍗忚涔?lt;/description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)鍩硅鍗忚涔?lt;/title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/5.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>6</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)澶栬喘鐗╁搧楠屾敹鎶ュ憡</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>鍥藉Linux鎶鏈煿璁笌鎺ㄥ箍涓績(jī)澶栬喘鐗╁搧楠屾敹鎶ュ憡</title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/6.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <nick>7</nick>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <description>lnic浜哄憳鍣ㄦ潗綆$悊鍔炴硶</description>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageBase>images/paper.gif</imageBase>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <imageOpen>images/paper.gif</imageOpen>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <title>lnic浜哄憳鍣ㄦ潗綆$悊鍔炴硶</title>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <dir>doc/2/7.doc</dir>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </contents>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) </entity>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)閿欒鍑虹幇鍦細(xì) 1銆?font color="#ff1493">content.removeContent(_element);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)2銆?font color="#ffa500"> //_element.removeContent(_element);
鐢ㄧ2縐嶆柟娉曟昏揪涓嶅埌鏁堟灉錛屾悶浜?jiǎn)鍗婂ぉ鎵嶆洿姝d簡(jiǎn)閿欒銆?/font>
瑙e喅鏂規(guī)硶錛?br />1.鎸囧畾杈撳嚭鏂囨。綾誨瀷涓簒ml鏂囨。聽(tīng) (example:data.xsl)
聽(tīng)<xsl:output method=xml聽(tīng) encoding=gb2312 media-type=text/xml />
2.鍦ㄦ柊鐨勭獥鍙f墦寮錛岀粰鑱旀帴澧炲姞灞炴?鎸囨槑鐩爣紿楀彛涓哄叾浠栫獥鍙B?(example:data2.xsl)
聽(tīng)<xsl:attribute name=target>_blank</xsl:attribute>
examples:
/*** data.xml ***/
<?xml version=1.0 encoding=gb2312?>
<?xml-stylesheet type=text/xsl href=data.xsl?>
<root>
聽(tīng)<search>
聽(tīng)聽(tīng)<url>http://www.google.com/search?q=</url>
聽(tīng)聽(tīng)<word>xml鏁版嵁</word>
聽(tīng)</search>
聽(tīng)<search>
聽(tīng)聽(tīng)<url>http://www1.baidu.com/baidu?word=</url>
聽(tīng)聽(tīng)<word>xml鏁版嵁</word>
聽(tīng)</search>
聽(tīng)<search>
聽(tīng)聽(tīng)<url>http://www.google.com/search?q=</url>
聽(tīng)聽(tīng)<word>鏋侀檺緙栫▼(xp)</word>
聽(tīng)</search>
聽(tīng)<search>
聽(tīng)聽(tīng)<url>http://www1.baidu.com/baidu?word=</url>
聽(tīng)聽(tīng)<word>鏋侀檺緙栫▼(xp)</word>
聽(tīng)</search>
</root>
/*** data.xsl ***/
<?xml version=1.0 encoding=gb2312?>
<xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
<!-- 鍘繪帀涓嬮潰涓鍙?灝嗗嚭鐜伴敊璇?-->
<xsl:output method=xml聽(tīng) encoding=gb2312 media-type=text/xml />
<xsl:template match=/>
聽(tīng)<xsl:apply-templates />聽(tīng)
</xsl:template>
<xsl:template match=search>
聽(tīng)<xsl:element name=a>
聽(tīng)聽(tīng)<xsl:attribute name=href><xsl:value-of select=url /><xsl:value-of select=word /></xsl:attribute>
聽(tīng)聽(tīng)<xsl:value-of select=word />
聽(tīng)</xsl:element>
聽(tīng)<br />
</xsl:template>
</xsl:stylesheet>
/*** data2.xsl ***/
<?xml version=1.0 encoding=gb2312?>
<xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
<xsl:template match=/>
聽(tīng)<xsl:apply-templates />聽(tīng)
</xsl:template>
<xsl:template match=search>
聽(tīng)<xsl:element name=a>
聽(tīng)聽(tīng)<xsl:attribute name=href><xsl:value-of select=url /><xsl:value-of select=word /></xsl:attribute>
聽(tīng)聽(tīng)<!-- 鍘繪帀涓嬮潰涓鍙?灝嗗嚭鐜伴敊璇?-->
聽(tīng)聽(tīng)<xsl:attribute name=target>_blank</xsl:attribute>
聽(tīng)聽(tīng)<xsl:value-of select=word />
聽(tīng)</xsl:element>
聽(tīng)<br />
</xsl:template>
</xsl:stylesheet>