锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲美女在线视频,欧美一区二区在线,销魂美女一区二区三区视频在线http://m.shnenglu.com/cannysyma/鐢ㄥ績錛?/description>zh-cnSun, 16 Nov 2025 06:36:17 GMTSun, 16 Nov 2025 06:36:17 GMT60鐢ㄤ簬鏈満 C++ 鐨勫皬宸у揩鎹風殑 XML 鍒嗘瀽鍣?/title><link>http://m.shnenglu.com/cannysyma/archive/2007/03/31/21006.html</link><dc:creator>Canny</dc:creator><author>Canny</author><pubDate>Sat, 31 Mar 2007 08:50:00 GMT</pubDate><guid>http://m.shnenglu.com/cannysyma/archive/2007/03/31/21006.html</guid><wfw:comment>http://m.shnenglu.com/cannysyma/comments/21006.html</wfw:comment><comments>http://m.shnenglu.com/cannysyma/archive/2007/03/31/21006.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/cannysyma/comments/commentRss/21006.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cannysyma/services/trackbacks/21006.html</trackback:ping><description><![CDATA[ <div id="hvzpftn" class="dropcap">鍘熸枃鍦板潃錛?a >http://msdn.microsoft.com/msdnmag/issues/07/04/Xml/Default.aspx?loc=zh</a><br /><br />聽聽聽 灝界 .NET Framework 涓嶆柇鍙栧緱鎴愬姛錛孧icrosoft 浠嶇劧璁ょ湡瀵瑰緟鏈満 C++ 寮鍙戙傞氳繃寮曞叆 XmlLite錛堥傚悎浜庣敤鏈満 C++ 緙栧啓鐨勫簲鐢ㄧ▼搴忕殑楂樻ц兘銆佷綆寮閿 XML 璇誨彇鍣ㄥ拰鍐欏叆鍣級璇存槑浜嗚繖涓鐐廣?</div> <p> </p> <p xmlid="PARA002">鎵樼浠g爜閫氳繃 System.Xml 鍛藉悕絀洪棿騫挎硾鏀寔 XML錛岃屼緷璧栦簬 COM 鐨勪紶緇?Visual Basic<sup class="clsSmall">廬</sup> 鍜?C++ 搴旂敤紼嬪簭鍙互璁塊棶 Microsoft<sup class="clsSmall">廬</sup> XML 鏍稿績鏈嶅姟 (MSXML) 涓殑綾諱技鍔熻兘銆備絾鏄紝榪欎簺騫舵病鏈変負闇瑕佸揩閫熺簿綆鐨?XML 鍒嗘瀽鍣ㄧ殑鏈満 C++ 寮鍙戜漢鍛樻彁渚涘瘜鏈夊惛寮曞姏鐨勯夐」銆傚紑濮嬩嬌鐢?XmlLite 鍚с?/p> <p xmlid="PARA003">鏈枃灝嗘帰璁ㄦ偍鍙互瀵?XmlLite 鎵ц鐨勬搷浣溿備絾鏄紝棣栧厛錛屼負璁懼畾棰勬湡錛屾垜甯屾湜蹇熷洖欏句竴涓?XmlLite 鏈彁渚涚殑鍐呭錛岃嚦灝戞槸姝ゅ垵濮嬬増鏈腑鏈彁渚涚殑鍐呭銆傚浜庡垵瀛﹁咃紝瀹冩棦鏈彁渚涙枃妗e璞℃ā鍨?(DOM) 瀹炵幇錛屼篃鏈彁渚?XML 鏋舵瀯鎴栨枃妗g被鍨嬪畾涔?(DTD) 楠岃瘉銆傚畠榪樼己灝戝楂樼駭宸ュ叿鐨勬敮鎸侊紝渚嬪鍩轟簬鍏夋爣鐨勫鑸紙濡?XPath錛夈佹牱寮忚〃鍜屽簭鍒楀寲銆備絾鏄紝閫氳繃寤虹珛鍦?XmlLite 涔嬩笂鐨勫姛鑳斤紝鍙互鏍規嵁闇瑕佸~琛ヤ換浣曠┖鐧斤紝Microsoft .NET Framework 涓殑鍑犱箮鎵鏈?XML 鍔熻兘鍚屾牱閮藉緩绔嬪湪 XmlReader 鍜?XmlWriter 綾諱箣涓娿?/p> <p xmlid="PARA004">閭d箞錛孹mlLite 鎻愪緵浜嗗摢浜涘唴瀹癸紵綆鍗曞湴璇達紝瀹冩彁渚涗簡闈炵紦瀛樼殑鍙繘鍒嗘瀽鍣紙鎻愪緵鎺ユ敹寮忕紪紼嬫ā鍨嬶級鍜岄潪緙撳瓨鐨勫彧榪?XML 鐢熸垚鍣ㄣ傚凡璇佹槑榪欎袱鑰呮槸闈炲父鏈変環鍊肩殑鍔熻兘銆?/p> <br /> <a name="S1"> </a> <span id="hvzpftn" class="clsSubhead">涓轟粈涔堟帹鍑烘柊鐨?XML 鍒嗘瀽鍣紵</span> <br /> <p xmlid="PARA005">寮鍙戜漢鍛樻棩鐩婄啛鎮変粬浠瘡澶╀嬌鐢ㄧ殑搴擄紝閫氳繃騫挎硾浣跨敤 XML錛屼粬浠偗瀹氫細璇㈤棶鏈夊叧鏂版帹鍑虹殑 XML 鍒嗘瀽鍣ㄧ殑涓浜涚枒闅鵑棶棰樸傝浜嗚В榪欎竴鏂板垎鏋愬櫒鐨勪環鍊鹼紝璁╂垜浠鍏堣冭檻涓涓?XML 鍒嗘瀽鍣ㄥ綋浠婄殑鎯呭艦銆?/p> <p xmlid="PARA006">寰堣嚜鐒跺湴錛屽鏋滃簲鐢ㄧ▼搴忓凡緇忓埄鐢?.NET Framework錛屽垯鍐沖畾閫氬父鏄緢綆鍗曠殑錛氬彧闇浣跨敤 System.Xml 鍗沖彲銆備負璇佹槑榪欎竴鐐癸紝XmlLite 鐨勮璁″熀浜?.NET Framework 涓?XmlReader 鍜?XmlWriter 綾葷殑璁捐銆備粠浠?C++ 緙栧啓鐨勬墭綆″簲鐢ㄧ▼搴忎嬌鐢?XmlLite 閫氬父娌℃湁浼樺娍銆俋mlLite 鐨勫姛鑳芥瘯绔熸瘮 XmlReader 鍜?XmlWriter 綾繪彁渚涚殑鍔熻兘瑕佸皯寰楀銆傦紙<a class="clsFigs" onclick="OpenUrl('default.aspx?loc=zh/&fig=true#fig1'); return false;" target="_self" xmlns:user="http://msdn.microsoft.com">鍥韭?</a> 涓殑琛ㄧ暐榪?XmlLite 涓殑涓昏綾誨瀷濡備綍鏄犲皠鍒?.NET Framework 涓殑涓昏綾誨瀷銆傦級鍙︿竴鏂歸潰錛屽鏋滃簲鐢ㄧ▼搴忎粎浣跨敤鏈満浠g爜錛岄偅涔堝氨 Microsoft 鎶鏈岃█錛孧SXML 鍦ㄤ紶緇熶笂鏄墍閫夌殑瑙e喅鏂規銆?/p> <p xmlid="PARA007">MSXML 鎻愪緵浜嗕袱涓樊寮傚緢澶х殑 XML 鍒嗘瀽鍣ㄣ傜涓涓垎鏋愬櫒鏄湪鍚勭鎯呭艦涓嬪彲鐢ㄧ殑 DOM 瀹炵幇銆傚鏋滀嬌鐢ㄨ緝灝忕殑 XML 鏂囨。涓旈渶瑕侀殢鏈鴻闂?XML 鏂囨。榪涜鍐呭瓨涓鍙栧拰鍐欏叆錛屽垯 DOM 瀹炵幇鏄竴縐嶅悎鐞嗙殑閫夋嫨銆侻SXML 鐨勬洿楂樼増鏈紩鍏ヤ簡鈥滅敤浜?XML 鐨勭畝鍗?API (SAX2)鈥濈殑瀹炵幇銆傚畠瀹為檯涓婃槸鍚︾畝鍗曟槸鏈変簤璁殑銆備嬌鐢?SAX2 鏃訛紙鐢氳嚦鍦ㄥ紑濮嬩箣鍓嶏級錛屾偍闇瑕佸疄鐜拌嚦灝戜袱涓?COM 鎺ュ彛錛氫竴涓敤浜庢帴鏀?XML 鏂囨。涓悇涓妭鐐圭殑閫氱煡錛屽彟涓涓敤浜庢帴鏀跺垎鏋愰敊璇殑閫氱煡銆?/p> <p xmlid="PARA008">灝?SAX2 瀹炵幇娣誨姞鍒?MSXML 鐨勫師鍥犲涓嬶細涓?DOM 瀹炵幇涓嶅悓錛孲AX2 鍒嗘瀽鍣ㄤ互鏁版嵁嫻佸艦寮忚鍙?XML 鏂囨。錛屽茍閫氱煡鎮ㄤ綍鏃跺埌杈懼悇涓妭鐐廣傝繖鎰忓懗鐫錛屾偍鐨勫簲鐢ㄧ▼搴忕殑鍐呭瓨浣跨敤閲忓茍涓嶉殢鎵鍒嗘瀽鏂囨。鐨勫ぇ灝忚屽鍔犮?/p> <p xmlid="PARA009">SAX2 瀛樺湪鐨勯棶棰樹互鍙?.NET Framework 涓嶆彁渚涘叾瀹炵幇鐨勫師鍥犲湪浜?SAX2 妯″瀷鐨勫唴鍦ㄥ鏉傛с傚畠瑕佹眰瀹炵幇鎺ュ彛鎴栦簨浠訛紝騫跺己鍒跺紑鍙戜漢鍛樹嬌鐢ㄦ洿涓洪棿鎺ョ殑緙栫▼妯″瀷錛岃姹傚紑鍙戜漢鍛樼鐞嗘敞瀹氫細浣垮簲鐢ㄧ▼搴忓彉寰楀鏉傜殑鍏朵粬鐘舵併傜浉鍙嶏紝.NET Framework 涓殑 XmlReader 鍜?XmlWriter 綾諱互鍙?XmlLite 鐨?IXmlReader 鍜?IXmlWriter 鎺ュ彛鎻愪緵浜嗙畝鍗曟槗鎳傜殑鍒嗘瀽鍣紝鍙互鐩存帴鍦ㄥ嚱鏁頒腑浣跨敤錛岃屼笉蹇呯鐞嗕換浣曞閮ㄧ姸鎬佹垨閫氱煡銆?/p> <p xmlid="PARA010">鐢變簬鍏惰璁$殑綆鏄庢э紝XmlLite 鑳藉鎻愪緵鐩稿綋濂界殑鎬ц兘錛屽嵆浣夸笌 MSXML SAX2 瀹炵幇鐩告瘮涔熸槸濡傛銆傝櫧鐒?SAX2 鍒嗘瀽鍣ㄥ彲浠ユ瘮 DOM 瀹炵幇鏇村ソ鍦板鐞嗗ぇ鍨嬫枃妗o紝浣嗘槸涓?XmlLite 鐩告瘮灝遍婅壊浜嗐?/p> <p xmlid="PARA011">綆鍗曞湴璇達紝XmlLite 浼樹簬 MSXML錛屼笖瀹冩洿鏄撲簬浠庢湰鏈?C++ 浣跨敤銆侻SXML 浠嶅皢鏄?Visual Basic 鍜屽熀浜?COM 鐨勮剼鏈璦鐨勬渶鍙瑙e喅鏂規錛屼絾鏄幇鍦ㄦ湰鏈?Visual C++<sup class="clsSmall">廬</sup> 鏈緇堝叿鏈変簡涓撻棬涓哄畠璁捐鐨?XML 鍒嗘瀽鍣ㄣ傝櫧鐒?Windows Vista鈩?鍜屾洿楂樼増鏈腑闄勫甫鏈?XmlLite錛屼絾鏄竴涓洿鏂板浜?Windows<sup class="clsSmall">廬</sup> XP 鍜?Windows Server<sup class="clsSmall">廬</sup> 2003 鐨?32 浣嶅拰 64 浣嶇増鏈篃鏄彲鐢ㄧ殑銆傚洜涓烘湭娑夊強 COM 娉ㄥ唽錛屾墍浠ユ鏇存柊鍖呭簲璇ヤ笉浼氬鑷?MSXML 閫氬父閫犳垚鐨勬湁鍏沖畨瑁呭拰鐗堟湰鎺у埗鐨勯毦棰樸?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S2"> </a> <span id="hvzpftn" class="clsSubhead">COM鈥淟ite鈥?/span> <br /> <p xmlid="PARA012">XmlLite 涓嶄粎鏄槗璁扮殑鍚嶇О錛涗簨瀹炰笂錛屽畠鏄竴涓交鍨?XML 鍒嗘瀽鍣ㄣ俋mlLite 鍒╃敤浜?COM 鐨勭簿鍗庯紝鍗崇紪紼嬭鑼冨拰綰﹀畾錛屽茍鎶涘純浜嗗鏉傜殑鍜屽彲鑳戒笉蹇呰鐨勯儴鍒嗭紝濡?COM 娉ㄥ唽銆佽繍琛屾椂鏈嶅姟銆佷唬鐞嗐佺嚎紼嬫ā鍨嬨佸皝閫佸鐞嗙瓑銆?/p> <p xmlid="PARA013">浠?XmlLite.dll 瀵煎嚭鐨勫嚱鏁板垱寤?XML 璇誨彇鍣ㄥ拰鍐欏叆鍣ㄣ傞氳繃閾炬帴鍒?XmlLite.lib 騫跺寘鎷?Windows SDK 涓殑 XmlLite.h 澶存枃浠訛紝鍙互璁塊棶瀹冧滑銆傜敓鎴愮殑 COM 鏍峰紡鎺ュ彛浣跨敤鐔熸倝鐨?IUnknown 鎺ュ彛鏂規硶榪涜鐢熷瓨鏈熺鐞嗐侰OM IStream 鎺ュ彛涔熻搗鍒頒竴瀹氫綔鐢ㄥ茍琛ㄧず瀛樺偍鍣ㄣ傞櫎姝や箣澶栵紝娌℃湁 COM 鐨勪緷璧栭」錛涙棤闇娉ㄥ唽浠諱綍 COM 綾繪垨鐢氳嚦璋冪敤寮哄埗鎬х殑 CoInitialize 鍑芥暟銆傛椿鍔ㄦā鏉垮簱 (ATL) CComPtr 綾誨鐞嗗墿浣欑殑涓灝忛儴鍒?COM銆備絾鏄紝鎮ㄧ‘瀹為渶瑕佸叧娉ㄧ嚎紼嬪畨鍏紝鍥犱負鍑轟簬鍗曠嚎紼嬫柟妗堜腑鐨勬ц兘錛孹mlLite 涓嶆槸綰跨▼瀹夊叏鐨勩?/p> <p xmlid="PARA014">鎴戝湪浠ヤ笅紺轟緥涓嬌鐢?COM_VERIFY 瀹忥紝浠ヤ究娓呮櫚鍦拌瘑鍒柟娉曞湪浣曞榪斿洖闇瑕佹鏌ョ殑 HRESULT銆傚彲浠ュ皢姝ゆ浛鎹負鐩稿簲鐨勯敊璇鐞?- 涓嶇璇ユ搷浣滃紩鍙戝紓甯歌繕鏄偍鑷繁榪斿洖 HRESULT銆?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S3"> </a> <span id="hvzpftn" class="clsSubhead">璇誨彇 XML</span> <br /> <p xmlid="PARA015">XmlLite 鎻愪緵浜嗚繑鍥?IXmlReader 鎺ュ彛瀹炵幇鐨?CreateXmlReader 鍑芥暟錛?</p> <pre class="clsCode">CComPtr<IXmlReader> reader; COM_VERIFY(::CreateXmlReader(__uuidof(IXmlReader), reinterpret_cast<void**>(&reader), 0)); </pre> <p> </p> <p xmlid="PARA016">铏界劧鏄彲閫夌殑錛屼絾鏄?CComPtr 綾繪ā鏉跨‘淇濊繀閫熼噴鏀炬帴鍙f寚閽堛?/p> <p xmlid="PARA017">CreateXmlReader 鎺ュ彈鎺ュ彛鏍囪瘑絎?(IID) 浠ュ強鎸囧悜 void 鎸囬拡鐨勬寚閽堛傝繖鏄?COM 緙栫▼涓殑甯歌妯″紡錛屽厑璁歌皟鐢ㄦ柟鎸囧畾瑕佽繑鍥炵殑鎺ュ彛鎸囬拡鐨勭被鍨嬨傛垜鐨勭ず渚嬩嬌鐢?__uuidof 榪愮畻絎︼紝璇ヨ繍綆楃鏄?Microsoft 鐗瑰畾鐨勫叧閿瓧錛岀敤浜庢彁鍙栦笌綾誨瀷鍏寵仈鐨?GUID銆傚湪榪欑鎯呭喌涓嬶紝瀹冪敤浜庢绱㈡帴鍙g殑 IID銆侰reateXmlReader 鐨勬渶鍚庝竴涓弬鏁版帴鍙楀彲閫夌殑 IMalloc 瀹炵幇浠ュ厑璁歌皟鐢ㄦ柟鎺у埗鍐呭瓨鍒嗛厤銆?/p> <p xmlid="PARA018">鍒涘緩璇誨彇鍣ㄥ悗錛岄渶瑕佹寚紺鴻鍙栧櫒灝嗙敤浣滆緭鍏ョ殑瀛樺偍鍣ㄣ侷Stream 鎺ュ彛琛ㄧず瀛樺偍鍣紝榪欐牱灝卞彲浠ュ皢 XmlLite 涓庡彲鑳借璁$殑浠諱綍嫻佸疄鐜頒竴璧蜂嬌鐢細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here... COM_VERIFY(reader->SetInput(stream)); </pre> <p> </p> <p xmlid="PARA019">錛堟垜灝嗗湪鏈枃鐨勫悗闈㈤儴鍒嗕腑璁ㄨ嫻併傦級</p> <p xmlid="PARA020">璁劇疆 XML 璇誨彇鍣ㄧ殑杈撳叆鍚庯紝鍙互閫氳繃閲嶅璋冪敤 Read 鏂規硶榪涜璇誨彇銆俁ead 鏂規硶鎺ュ彈涓涓彲閫夊弬鏁幫紝璇ュ弬鏁板湪姣忔鎴愬姛璋冪敤鏃惰繑鍥炶妭鐐圭被鍨嬨俁ead 鏂規硶榪斿洖 S_OK 浠ユ寚紺哄凡浠庢祦涓垚鍔熻鍙栦笅涓涓妭鐐癸紝榪斿洖 S_FALSE 浠ユ寚紺哄凡鍒拌揪嫻佺殑緇撳熬澶勩備互涓嬫槸濡備綍渚濇鏋氫婦鑺傜偣鐨勪竴涓ず渚嬶細 </p> <pre class="clsCode">HRESULT result = S_OK; XmlNodeType nodeType = XmlNodeType_None; while (S_OK == (result = reader->Read(&nodeType))) { // Get node-specific info } </pre> <p> </p> <p xmlid="PARA021">瑕佹灇涓懼綋鍓嶈妭鐐圭殑灞炴э紝璇蜂嬌鐢?MoveToFirstAttribute 鍜?MoveToNextAttribute 鏂規硶銆傚鏋滃凡鎴愬姛鍦伴噸鏂板畾浣嶈鍙栧櫒錛屽垯榪欎袱縐嶆柟娉曢兘榪斿洖 S_OK錛涘鏋滀笉瀛樺湪鏇村鐨勫睘鎬э紝鍒欒繑鍥?S_FALSE銆備互涓嬬ず渚嬭鏄庡浣曚緷嬈℃灇涓劇粰瀹氳妭鐐圭殑灞炴э細 </p> <pre class="clsCode">for (HRESULT result = reader->MoveToFirstAttribute(); S_OK == result; result = reader->MoveToNextAttribute()) { // Get attribute-specific info } </pre> <p> </p> <p xmlid="PARA022">璋冪敤 IXmlReader 鐨?Read 鏂規硶鏃訛紝瀹冧細灝嗕換浣曡妭鐐瑰睘鎬ц嚜鍔ㄥ瓨鍌ㄥ湪鍐呴儴闆嗗悎涓傝繖鏍鳳紝鎮ㄥ氨鍙互浣跨敤 MoveToAttributeByName 鏂規硶錛屾寜鍚嶇О灝嗚鍙栧櫒縐誨姩鍒扮壒瀹氱殑灞炴с備絾鏄紝鏋氫婦灞炴у茍灝嗗叾瀛樺偍鍦ㄥ簲鐢ㄧ▼搴忕壒瀹氱殑鏁版嵁緇撴瀯涓紝鏁堢巼閫氬父鏇撮珮銆傝娉ㄦ剰錛屾偍榪樺彲浠ヤ嬌鐢?GetAttributeCount 鏂規硶紜畾褰撳墠鑺傜偣涓殑灞炴ф暟銆?/p> <p xmlid="PARA023">紜畾鑺傜偣鎴栧睘鎬у悗錛岃幏鍙栧叾淇℃伅灝卞緢綆鍗曚簡銆備互涓嬬ず渚嬫紨紺哄浣曡幏鍙栫粰瀹氳妭鐐圭殑鍛藉悕絀洪棿 URI 鍜屾湰鍦板悕縐幫細 </p> <pre class="clsCode">PCWSTR namespaceUri = 0; UINT namespaceUriLength = 0; COM_VERIFY(reader->GetNamespaceUri(&namespaceUri, &namespaceUriLength)); PCWSTR localName = 0; UINT localNameLength = 0; COM_VERIFY(reader->GetLocalName(&localName, &localNameLength)); </pre> <p> </p> <p xmlid="PARA024">榪斿洖瀛楃涓插肩殑鎵鏈?IXmlReader 鏂規硶閮介伒寰妯″紡銆傜涓涓弬鏁版帴鍙楁寚鍚戝瀛楃鎸囬拡甯擱噺鐨勬寚閽堛傜浜屼釜鍙傛暟鏄彲閫夌殑錛涘鏋滃畠涓嶄負闆訛紝鍒欏畠灝嗚繑鍥炰互瀛楃搴﹂噺鐨勫瓧絎︿覆闀垮害錛堜笉鍖呮嫭絀虹粨鏉熺錛夈?/p> <p xmlid="PARA025">浠ヤ笅鏄己璋冩ц兘鐨勫彟涓涓ず渚嬨備粎鍦ㄥ皢璇誨彇鍣ㄧЩ鍔ㄥ埌鍏朵粬鑺傜偣鎴栦互鏌愮鍏朵粬鏂瑰紡錛堝閫氳繃璁劇疆鏂扮殑杈撳叆嫻佹垨閲婃斁 IXmlReader 鎺ュ彛錛変嬌褰撳墠鑺傜偣鏃犳晥涔嬪墠錛屼粠 IXmlReader 鏂規硶榪斿洖鐨勫瓧絎︿覆鎸囬拡鎵嶆槸鏈夋晥鐨勩傛崲鍙ヨ瘽璇達紝IXmlReader 涓嶄細灝嗘祦鐨勫壇鏈繑鍥炵粰璋冪敤鏂廣?/p> <p xmlid="PARA026">涓庡叾鍦?.NET Framework 涓殑瀵瑰簲鏂逛笉鍚岋紝IXmlReader 鏈彁渚涜鍙栭敭鍏ュ唴瀹圭殑浠諱綍鏂規硶銆備緥濡傦紝濡傛灉鐗瑰畾鐨勫厓绱犳垨灞炴у寘鍚暟瀛楁垨鏃ユ湡錛屽垯鎮ㄩ渶瑕侀鍏堣幏鍙栧叾瀛楃涓茶〃紺哄艦寮忥紝鐒跺悗鏍規嵁闇瑕佽嚜宸辮繘琛岃漿鎹€?NET Framework 鐨?XmlReader 綾諱腑瀛樺湪鐨勮澶氬叾浠?helper 鏂規硶涔熶笉瀛樺湪浜?IXmlReader 涓紝浣嗘槸鍙互浣滀負 helper 鍑芥暟緙栧啓銆俋mlLite 紜疄絎﹀悎鏈灝忔帴鍙h璁$殑 C++ 鐞嗚銆?/p> <p xmlid="PARA027"> <span id="hvzpftn" class="clsFigs" xmlns:user="http://msdn.microsoft.com">鍥韭?</span> 鏄劇ず浣跨敤 IXmlReader 璇誨彇 XML 鏂囨。鏃舵秹鍙婄殑瀵硅薄鍜屾娊璞°備絾鏄紝璇風墷璁幫紝IStream 鍙互鎶藉彇浠諱綍瀛樺偍錛屾澶勬樉紺虹殑鏂囦歡浠呬粎鏄竴涓父瑙佺ず渚嬨?/p> <div class="hvzpftn" id="290154002" style="DISPLAY: block; FLOAT: right; MARGIN: 5px 0px 10px 5px; WIDTH: 154px"> <img height="290" alt="鍥?2 璇誨彇鍣? src="http://msdn.microsoft.com/msdnmag/issues/07/04/Xml/zh/fig02.gif" width="154" border="0" /> <br /> <span id="hvzpftn" class="clsCap">鍥?2</span>聽<span id="hvzpftn" class="clsCaptxt">璇誨彇鍣?/span></div> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S4"> </a> <span id="hvzpftn" class="clsSubhead">鍐欏叆 XML</span> <br /> <p xmlid="PARA028">XmlLite 鎻愪緵浜嗚繑鍥?IXmlWriter 鎺ュ彛瀹炵幇鐨?CreateXmlWriter 鍑芥暟錛?</p> <pre class="clsCode">CComPtr<IXmlWriter> writer; COM_VERIFY(::CreateXmlWriter(__uuidof(IXmlWriter), reinterpret_cast<void**>(&writer), 0)); </pre> <p> </p> <p xmlid="PARA029">鍒涘緩鍐欏叆鍣ㄥ悗錛岄渶瑕佹寚紺哄啓鍏ュ櫒灝嗙敤浣滆緭鍑虹殑瀛樺偍鍣細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here COM_VERIFY(writer->SetOutput(stream)); </pre> <p> </p> <p xmlid="PARA030">寮濮嬪啓鍏ヤ箣鍓嶏紝鍙互淇敼鍐欏叆鍣ㄥ睘鎬с俋mlWriterProperty 鏋氫婦瀹氫箟鍙敤鐨勫睘鎬с備緥濡傦紝鎮ㄥ彲鑳藉笇鏈涙寚瀹氭槸鍚︾緝榪?XML 杈撳嚭浠ヤ究浜庤鑰呴槄璇伙紙浣跨敤 SetProperty 鏂規硶鍙互鍋氬埌榪欎竴鐐癸級錛?</p> <pre class="clsCode">COM_VERIFY(writer->SetProperty(XmlWriterProperty_Indent, TRUE)); </pre> <p> </p> <p xmlid="PARA031">鐒跺悗鍙互寮濮嬩嬌鐢?IXmlWriter 鏂規硶鍐欏叆鍩虹嫻併俋mlLite 鏀寔 XML 鐗囨銆傚鏋滆鍒掑啓鍏ュ畬鏁寸殑 XML 鏂囨。錛屽垯搴旇浠庤皟鐢?WriteStartDocument 鏂規硶錛堝畠璐熻矗鍐欏叆 XML 澹版槑錛夊紑濮嬨傚0鏄庡彇鍐充簬鎵鐢ㄧ殑緙栫爜錛屼絾鏄粯璁ょ紪鐮佷負 UTF-8錛屽畠鍦ㄥぇ澶氭暟鎯呭喌涓嬮兘搴旇鏄悎閫傜殑銆傦紙紼嶅悗灝嗕粙緇嶆枃鏈紪鐮併傦級鎻愪緵浜嗚澶?WriteXxx 鏂規硶錛岀敤浜庡啓鍏ュ悇縐嶈妭鐐圭被鍨嬨佸睘鎬у拰鍊箋?/p> <p xmlid="PARA032">璇瘋冭檻浠ヤ笅紺轟緥錛?</p> <pre class="clsCode">COM_VERIFY(writer->WriteStartDocument(XmlStandalone_Omit)); COM_VERIFY(writer->WriteStartElement(0, L"html", L"http://www.w3.org/1999/xhtml")); COM_VERIFY(writer->WriteStartElement(0, L"head", 0)); COM_VERIFY(writer->WriteElementString(0, L"title", 0, L"My Web Page")); COM_VERIFY(writer->WriteEndElement()); // </head> COM_VERIFY(writer->WriteStartElement(0, L"body", 0)); COM_VERIFY(writer->WriteElementString(0, L"p", 0, L"Hello world!")); COM_VERIFY(writer->WriteEndDocument()); </pre> <p> </p> <p xmlid="PARA033">WriteStartDocument 鏂規硶澶勭悊灝?XML 澹版槑鍐欏叆嫻佺殑鎿嶄綔銆傚畠鍙湁涓涓弬鏁幫紝璇ュ弬鏁版帴鍙楁潵鑷?XmlStandalone 鏋氫婦鐨勫鹼紝鎸囩ず鏄惁鍑虹幇鐙珛鐨勬枃妗e0鏄庯紝濡傛灉鏄繖鏍鳳紝鍒欐寚紺哄畠淇濆瓨鐨勫箋傚啓鍏?XML 鐗囨鏃訛紝閫氬父鐪佺暐瀵?WriteStartDocument 鐨勮皟鐢ㄣ?/p> <p xmlid="PARA034">WriteStartElement 鏂規硶鎺ュ彈浠ヤ笅涓変釜鍙傛暟錛氱涓涓弬鏁版寚瀹氬厓绱犵殑鍙夊懡鍚嶇┖闂村墠緙錛岀浜屼釜鍙傛暟鎸囧畾鍏冪礌鐨勬湰鍦板悕縐幫紝絎笁涓弬鏁版寚瀹氬彲閫夌殑鍛藉悕絀洪棿 URI銆俉riteElementString 鏄?XmlLite 鎻愪緵鐨勯潪甯告柟渚跨殑鏂規硶涔嬩竴銆傜敤浜庡啓鍏?XHTML 鏂囨。鏍囬鐨勪互涓嬩唬鐮佺瓑鏁堜簬涓婁竴紺轟緥涓嬌鐢ㄧ殑 WriteElementString錛?</p> <pre class="clsCode">COM_VERIFY(writer->WriteStartElement(0, L"title", 0)); COM_VERIFY(writer->WriteString(L"My Web Page")); COM_VERIFY(writer->WriteEndElement()); </pre> <p> </p> <p xmlid="PARA035">鏄劇劧錛學riteElementString 鏂規硶涓嶆槸緇濆蹇呰鐨勶紝浣嗗畠紜疄寰堟湁鐢ㄣ?/p> <p xmlid="PARA036">鏈鍚庯紝WriteEndDocument 鏂規硶鐢ㄤ簬鍏抽棴鏂囨。銆傛偍鍙兘宸叉敞鎰忓埌錛屾湭鏄懼紡鍏抽棴 body 鍜?html 鍏冪礌銆俉riteEndDocument 浼氳嚜鍔ㄥ叧闂換浣曟墦寮鐨勫厓绱犮傚氨姝よ岃█錛岄噴鏀懼啓鍏ュ櫒涔熶細鍏抽棴浠諱綍鍓╀綑鐨勫厓绱犮備絾鏄紝濡傛灉鎮ㄤ笉灝忓績錛屽垯鏈樉寮忓叧闂綾誨厓绱犵殑鍋氭硶鍙兘浼氬鑷撮敊璇紝鍥犱負嫻佺殑鐢熷瓨鏈熷拰鍐欏叆鍣ㄧ殑鐢熷瓨鏈熼氬父鍙互涓嶅悓銆傝璇寸殑鏄紝濡傛灉闇瑕佺‘淇濆凡灝嗘墍鏈夎鍐欏叆鐨勫唴瀹瑰啓鍏ュ熀紜嫻侊紝鍒欏彧闇璋冪敤 IXmlWriter 鐨?Flush 鏂規硶鍗沖彲銆?/p> <p xmlid="PARA037"> <span id="hvzpftn" class="clsFigs" xmlns:user="http://msdn.microsoft.com">鍥韭?</span> 鏄劇ず浣跨敤 IXmlWriter 鍐欏叆 XML 鏂囨。鏃舵秹鍙婄殑瀵硅薄鍜屾娊璞℃祦銆傝鐗㈣錛孖Stream 鍙互鎶藉彇浠諱綍瀛樺偍錛屾澶勭殑鏂囦歡浠呬粎鏄竴涓父瑙佺ず渚嬨?/p> <div class="hvzpftn" id="268143004" style="DISPLAY: block; FLOAT: right; MARGIN: 5px 0px 10px 5px; WIDTH: 143px"> <img height="268" alt="鍥?3 鍐欏叆鍣? src="http://msdn.microsoft.com/msdnmag/issues/07/04/Xml/zh/fig03.gif" width="143" border="0" /> <br /> <span id="hvzpftn" class="clsCap">鍥?3</span>聽<span id="hvzpftn" class="clsCaptxt">鍐欏叆鍣?/span></div> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S5"> </a> <span id="hvzpftn" class="clsSubhead">浣跨敤嫻?/span> <br /> <p xmlid="PARA038">鍒版涓烘錛屾垜瀵規祦榪涜鐨勪粙緇嶅茍涓嶅銆備笌涓浜涘姛鑳芥洿鍏ㄩ潰鐨?XML 搴撲笉鍚岋紝XmlLite 鏈彁渚涗換浣曟敮鎸佷粠鍏叡瀛樺偍浣嶇疆錛堝鏂囦歡鎴栭氳繃緗戠粶鍗忚錛夎鍙栧拰鍚戝叾鍐欏叆鐨勫姛鑳姐傛鍥犱負榪欎竴鐐癸紝瀵逛簬甯屾湜浠庡叾璇誨彇鎴栧悜鍏跺啓鍏ョ殑浠諱綍瀛樺偍鍣紝鎮ㄩ兘闇瑕佹彁渚?IStream 瀹炵幇銆傚疄鐜?IStream 鎺ュ彛騫朵笉澶嶆潅錛屼絾鏄湪璁稿鎯呭喌涓嬶紝鎮ㄤ笉闇瑕佹墽琛屾鎿嶄綔錛屽洜涓哄疄鐜板彲鑳藉凡瀛樺湪銆?/p> <p xmlid="PARA039">CreateStreamOnHGlobal 鍑芥暟鎻愪緵鐢辮櫄鎷熷唴瀛樻敮鎸佺殑 IStream 瀹炵幇銆傜涓涓弬鏁版槸浣跨敤 GlobalAlloc 鍑芥暟鍒涘緩鐨勫彲閫夊唴瀛樺彞鏌勩備絾鏄紝鍙渶浼犻掗浂錛孋reateStreamOnHGlobal 鍗沖彲涓烘偍鍒涘緩鍐呭瓨瀵硅薄銆備互涓嬬ず渚嬪垱寤轟竴涓敱緋葷粺鍐呭瓨鏀寔涓斿皢鏍規嵁闇瑕佸姩鎬佸闀跨殑 IStream 瀹炵幇錛?</p> <pre class="clsCode">CComPtr<IStream> stream; COM_VERIFY(::CreateStreamOnHGlobal(0, TRUE, &stream)); </pre> <p> </p> <p xmlid="PARA040">閲婃斁嫻佸皢閲婃斁鍐呭瓨銆?/p> <p xmlid="PARA041">SHCreateStreamOnFile 鍑芥暟鎻愪緵浜嗗彟涓涓湁鐢ㄧ殑 IStream 瀹炵幇銆傚畠鍒涘緩鐢辨枃浠舵敮鎸佺殑 IStream錛?</p> <pre class="clsCode">CComPtr<IStream> stream; COM_VERIFY(::SHCreateStreamOnFile(L"D:\\Sample.xml", STGM_WRITE | STGM_SHARE_DENY_WRITE, &stream)); </pre> <p> </p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S6"> </a> <span id="hvzpftn" class="clsSubhead">璇誨彇鏃剁殑鏂囨湰緙栫爜</span> <br /> <p xmlid="PARA042">铏界劧榛樿鎯呭喌涓?XmlLite 浣跨敤 UTF-8 榪涜鍐欏叆錛屼絾鏄鏋滃湪璇誨彇鏃跺皾璇曟嫻嬫枃鏈紪鐮侊紝鍒欏彲浠ヨ鐩栨琛屼負銆傞鍏堬紝璁╂垜浠湅涓涓嬫偍灝嗚嚜鍔ㄨ幏鍙栫殑淇℃伅銆傚浜庣粰瀹氱殑嫻侊紝IXmlReader 灝嗛氳繃浣滀負 XML 鍓嶅悓姝ョ爜鐨勫瓧鑺傞『搴忔爣璁版潵媯嫻嬬紪鐮佹彁紺恒侷XmlReader 榪樺皢鍏佽鍦?XML 澹版槑涓寚瀹氱殑浠諱綍緙栫爜銆傛湡鏈涗換浣?XML 鍒嗘瀽鍣ㄩ兘鍏鋒湁榪欎袱涓壒寰併傚鏋滃叿鏈夊彲鑳芥湭瀹氫箟浠諱綍緙栫爜淇℃伅鐨勮緭鍏ユ祦錛岃屼笖 XmlLite 鏃犳硶璇曟帰鎬у湴紜畾姝d嬌鐢ㄧ殑緙栫爜錛屽垯鍙互灝?IXmlReader 瀹氬悜鍒扮壒瀹氱殑緙栫爜錛堝鏋滅粰瀹氫簡浠g爜欏墊垨緙栫爜鍚嶇О錛夈?/p> <p xmlid="PARA043">鍙互鍋囧?IXmlReaderInput 鎺ュ彛鍒涘緩 XML 璇誨彇鍣ㄨ緭鍏ュ璞★紝鑰屼笉鏄皢嫻佺洿鎺ヤ紶閫掑埌 IXmlReader銆傛彁渚涗簡涓や釜鐢ㄤ簬鍒涘緩鍖呰杈撳叆嫻佺殑杈撳叆瀵硅薄鐨勫嚱鏁般侰reateXmlReaderInputWithEncodingCodePage 鍑芥暟鎺ュ彈浠g爜欏電紪鍙峰艦寮忕殑浠g爜銆侰reateXmlReaderInputWithEncodingName 鍑芥暟鎺ュ彈浣跨敤鍏惰鑼冨悕縐扮殑緙栫爜銆傞櫎姝や箣澶栵紝榪欎袱涓嚱鏁板叿鏈夊畬鍏ㄧ浉鍚岀殑絳懼悕銆傛鎷竴涓嬶紝閫氬父鍙互瀵?XML 璇誨彇鍣ㄧ殑杈撳叆嫻佽繘琛屽涓嬭緗細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here COM_VERIFY(reader->SetInput(stream)); </pre> <p> </p> <p xmlid="PARA044">瑕佽鐩栫紪鐮侊紝璇峰皢浠g爜鏇存敼涓猴細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here CComPtr<IXmlReaderInput> input; COM_VERIFY(::CreateXmlReaderInputWithEncodingName(stream, 0, // default allocator L"ISO-8859-8", TRUE, // hint 0, // base URI &input)); COM_VERIFY(reader->SetInput(input)); </pre> <p> </p> <p xmlid="PARA045">絎竴涓弬鏁版寚紺?XML 璇誨彇鍣ㄥ皢浠庡叾璇誨彇鐨勬祦銆傜浜屼釜鍙傛暟鎺ュ彈鍙夌殑 IMalloc 瀹炵幇銆傚鏋滄彁渚涚殑璇濓紝鍒欏畠灝嗚鐩?XML 璇誨彇鍣ㄨ嚜宸辯殑瀹炵幇銆傜涓変釜鍙傛暟鎸囧畾緙栫爜鍚嶇О銆?a >msdn2.microsoft.com/ms752827.aspx</a> 涓婄殑鏂囨。鍒楀嚭浜嗘湰鏈烘敮鎸佺殑緙栫爜錛涜鏀寔鍏朵粬緙栫爜錛屽彲浠ユ彁渚?IMultiLanguage2 鎺ュ彛瀹炵幇銆備笅涓涓弬鏁版寚紺烘槸鍚﹀繀欏諱嬌鐢ㄦ寚瀹氱殑緙栫爜鎴栬呭畠鏄惁浠呬粎鏄竴涓彁紺恒傚鏋滄寚瀹?TRUE錛屽垯鎸囩ず鍒嗘瀽鍣ㄥ皾璇曚嬌鐢ㄥ緩璁殑緙栫爜錛屼絾鏄鏋滃畠澶辮觸錛屽垯鍙互闅忔剰灝濊瘯璇曟帰鎬у湴紜畾瀹為檯鐨勭紪鐮併傚鏋滄寚瀹?FALSE錛屽垯鎸囩ず鍒嗘瀽鍣ㄥ皾璇曞緩璁殑緙栫爜錛涘鏋滃畠涓庤緭鍏ユ祦涓嶅尮閰嶏紝鍒欒繑鍥為敊璇備笅涓涓弬鏁版帴鍙楀彲鑳界敤浜庤В鏋愬閮ㄥ疄浣撶殑鍙夊熀鏈?URI銆傛渶鍚庝竴涓弬鏁拌繑鍥炶〃紺鴻浼犻掑埌 SetInput 鏂規硶鐨勮緭鍏ュ璞$殑鎺ュ彛鎸囬拡銆?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S7"> </a> <span id="hvzpftn" class="clsSubhead">鍐欏叆鏃剁殑鏂囨湰緙栫爜</span> <br /> <p xmlid="PARA046">XML 鍐欏叆鍣ㄥ皢鍩轟簬浼犻掑埌 SetOutput 鏂規硶鐨勫璞$‘瀹氳浣跨敤鐨勭紪鐮併傚鏋滆瀵硅薄瀹炵幇 IStream 鎺ュ彛鎴栬呯敋鑷沖疄鐜版湁闄愮殑 ISequentialStream 鎺ュ彛錛屽垯 XML 鍐欏叆鍣ㄥ皢浣跨敤 UTF-8 緙栫爜銆傚彲浠ュ垱寤?XML 鍐欏叆鍣ㄨ緭鍑哄璞℃潵瑕嗙洊姝よ涓恒傛彁渚涗簡涓や釜鐢ㄤ簬鍒涘緩鍖呰杈撳嚭嫻佺殑杈撳嚭瀵硅薄鐨勫嚱鏁般侰reateXmlWriterOutputWithEncodingCodePage 鍑芥暟鎺ュ彈浠g爜欏電紪鍙峰艦寮忕殑緙栫爜錛岃?CreateXmlWriterOutputWithEncodingName 鍑芥暟鎺ュ彈浣跨敤鍏惰鑼冨悕縐扮殑緙栫爜銆傞櫎姝や箣澶栵紝榪欎袱涓嚱鏁板叿鏈夊畬鍏ㄧ浉鍚岀殑絳懼悕銆傞氬父錛屽彲浠ュ XML 鍐欏叆鍣ㄧ殑杈撳嚭嫻佽繘琛屽涓嬭緗細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here COM_VERIFY(writer->SetOutput(stream)); </pre> <p> </p> <p xmlid="PARA047">瑕佽鐩栭粯璁ょ紪鐮侊紝璇風紪鍐欎互涓嬩唬鐮侊細 </p> <pre class="clsCode">CComPtr<IStream> stream; // Create stream object here CComPtr<IXmlWriterOutput> output; COM_VERIFY(::CreateXmlWriterOutputWithEncodingName(stream, 0, L"ISO-8859-8", &output)); COM_VERIFY(writer->SetOutput(output)); </pre> <p> </p> <p xmlid="PARA048">絎竴涓弬鏁版寚紺?XML 鍐欏叆鍣ㄥ皢鍐欏叆鐨勬祦銆傜浜屼釜鍙傛暟鎺ュ彈鍙夌殑 IMalloc 瀹炵幇銆傚鏋滄彁渚涚殑璇濓紝鍒欏畠灝嗚鐩?XML 鍐欏叆鍣ㄨ嚜宸辯殑瀹炵幇銆傜涓変釜鍙傛暟鎸囧畾緙栫爜鍚嶇О銆傛渶鍚庝竴涓弬鏁拌繑鍥炶〃紺鴻浼犻掑埌 SetOutput 鏂規硶鐨勮緭鍑哄璞$殑鎺ュ彛鎸囬拡銆?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S8"> </a> <span id="hvzpftn" class="clsSubhead">澶勭悊澶ф暟鎹?/span> <br /> <p xmlid="PARA049">涓轟簡鍦ㄨ鍙栧ぇ鏁版嵁鍊兼椂闄愬埗鍐呭瓨浣跨敤錛孹ML 璇誨彇鍣ㄦ彁渚涗簡鎸夋暟鎹潡璇誨彇鍊肩殑鏈哄埗銆侷XmlReader ReadValueChunk 鏂規硶璇誨彇鐨勫瓧絎︽暟涓嶈秴榪囪瀹氱殑鏈澶у瓧絎︽暟錛屽湪棰勬枡鍒板悗緇皟鐢ㄦ椂鍚戝墠縐誨姩璇誨彇鍣ㄣ備互涓嬬ず渚嬭鏄庡浣曢噸澶嶈皟鐢?ReadValueChunk 浠ヨ鍙栧ぇ鏁版嵁鍊鹼細 </p> <pre class="clsCode">CString value; WCHAR chunk[256] = { 0 }; HRESULT result = S_OK; UINT charsRead = 0; while (S_OK == (result = reader->ReadValueChunk(chunk, countof(chunk), &charsRead))) { value.Append(chunk, charsRead); } </pre> <p> </p> <p xmlid="PARA050">褰撲笉鍐嶆湁鏁版嵁鍙敤鏃訛紝ReadValueChunk 榪斿洖 S_FALSE銆傚湪姝ょず渚嬩腑錛屾垜瑕佸皢鏁版嵁鍧楀啓鍏?CString 瀵硅薄銆傝繖浠呬粎鏄負浜嗚鏄庡浣曠鐞嗘暟鎹潡鐨勯暱搴︼紝鏄劇劧榪欏湪瀹為檯涓細鎶墊秷鏁版嵁鍒嗗潡鐨勪紭鍔褲?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S9"> </a> <span id="hvzpftn" class="clsSubhead">瀹夊叏娉ㄦ剰浜嬮」</span> <br /> <p xmlid="PARA051">浠?XML 涓轟腑蹇冪殑搴旂敤紼嬪簭蹇呴』鎬繪槸澶勭悊鏉ヨ嚜涓嶅彲淇℃簮鐨?XML銆俋mlLite 鎻愪緵浜嗚澶氬伐鍏蜂互淇濇姢搴旂敤紼嬪簭鍏嶅彈宸茬煡婕忔礊鍜屽皢鏉ユ紡媧炵殑鏀誨嚮銆?/p> <p xmlid="PARA052">XML 鏂囨。鍙互鍖呭惈瀵瑰閮ㄥ疄浣撶殑寮曠敤銆備竴浜?XML 鍒嗘瀽鍣ㄨ嚜鍔ㄨВ鏋愯繖浜涘疄浣撱傝櫧鐒舵鏂規硶鍙兘寰堟湁鐢紝浣嗘槸錛屽鏋滄湭浠旂粏緙栧啓 XML 瑙f瀽紼嬪簭浠ョ紦瑙e悇縐嶅▉鑳侊紝鍒欐鏂規硶鍙兘浼氶犳垚瀹夊叏婕忔礊鐨勬敾鍑匯俋mlLite 鏃笉鑷姩瑙f瀽澶栭儴瀹炰綋錛屼篃涓嶆彁渚?XML 瑙f瀽紼嬪簭銆傝鎻愪緵鑷繁鐨勫疄鐜幫紙濡傛湁蹇呰錛夛紝璇峰疄鐜?IXmlResolver 鎺ュ彛騫跺皢 XmlReaderProperty_XmlResolver 灞炴т笌 IXmlReader SetProperty 鏂規硶涓璧蜂嬌鐢紝浠ユ寚紺鴻鍙栧櫒浣跨敤鎮ㄧ殑瑙f瀽紼嬪簭銆?/p> <p xmlid="PARA053">XML 鏂囨。鍙兘榪樺寘鍚?DTD 澶勭悊璇存槑銆傝櫧鐒?XmlLite 涓嶆敮鎸佹枃妗i獙璇侊紙浣跨敤 XML 鏋舵瀯鎴?DTD錛夛紝浣嗘槸瀹冩敮鎸?DTD 瀹炰綋鎵╁睍鍜岄粯璁ゅ睘鎬с傜敱浜庤繖浜?DTD 鍙互鍖呭惈瀵瑰閮ㄥ疄浣撶殑寮曠敤錛屽洜姝ゅ畠浠彲鑳戒細浣挎偍鐨勫簲鐢ㄧ▼搴忓彈鍒板悇縐嶆敾鍑匯傞粯璁ゆ儏鍐典笅錛孹mlLite 紱佺敤 DTD 澶勭悊銆傞氳繃灝?XmlReaderProperty_DtdProcessing 灞炴ц緗負 DtdProcessing_Parse 鍊鹼紝鍙互鍏佽 DTD 澶勭悊銆傛澶栵紝榪樺瓨鍦ㄧ敱 XmlReaderProperty_MaxEntityExpansion 鎺у埗鐨?DTD 瀹炰綋鎵╁睍鏀誨嚮錛堜篃縐頒負 billion laughs 鏀誨嚮錛夌殑鍐呯疆緙撹В鎺柦銆傛灞炴х殑榛樿鍊間負 100,000銆?/p> <p xmlid="PARA054">鏀誨嚮鑰呭彲浠ュ埄鐢ㄤ嬌鐢?XML 鐨勫簲鐢ㄧ▼搴忕殑鍙︿竴縐嶆柟娉曟槸錛屽垱寤哄悕縐伴潪甯擱暱鐨勬枃妗c傚鏋滄湭鑳介樆姝紝鍒欒繖鍙兘鐢ㄥ敖宸ㄥぇ鐨勫唴瀛樺茍鍏佽鎷掔粷鏈嶅姟鏀誨嚮銆傛垜宸茬粡鎻愮ず浜嗗彲浠ユ墽琛岀殑鏂規硶銆傜紦瑙f綾誨▉鑳佺殑涓縐嶆槑鏄炬柟娉曟槸錛屾寜鏁版嵁鍧楄鍙栧ぇ鏁版嵁鍊鹼紝濡備笂涓閮ㄥ垎鎵榪般傚彟涓縐嶆湁鐢ㄧ殑鏂規硶鏄紝鎻愪緵闄愬埗鍐呭瓨鍒嗛厤鐨勮嚜瀹氫箟 IMalloc 瀹炵幇銆傚鏋滆緭鍏ユ祦鏀寔闅忔満璁塊棶錛屽垯榪樺彲浠ユ寚紺?XML 璇誨彇鍣ㄤ嬌鐢?XmlReaderProperty_RandomAccess 灞炴ф潵閬垮厤緙撳瓨灞炴с傝繖灝嗗噺灝戠敤浜庤鍙栧紑濮嬪厓绱犳爣璁扮殑鍐呭瓨閲忥紝浣嗘槸涔熷彲鑳介檷浣庡垎鏋愰熷害錛屽洜涓哄垎鏋愬櫒蹇呴』鏉ュ洖鏌ユ壘浠ヤ究鍦ㄨ姹傛椂媯绱㈠悇涓睘鎬у箋?/p> <p xmlid="PARA055">濡傛灉 XML 灞傛緇撴瀯榪囨繁錛屽垯涔熷彲鑳藉揩閫熺敤灝界郴緇熻祫婧愩傝闃繪鏀誨嚮鑰呮彁渚涘眰嬈$粨鏋勮繃娣辯殑 XML 鏂囨。錛屽彲浠ヤ嬌鐢?XmlReaderProperty_MaxElementDepth 灞炴ч檺鍒跺垎鏋愬櫒灝嗗厑璁哥殑娣卞害銆傛灞炴ч粯璁や負 256銆?/p> <div style="MARGIN-TOP: 5px" align="right"> <a class="clsSmall" onclick="OpenMenu(contentbtn, contentmenu);" target="_self"> <img style="MARGIN-LEFT: 5px" height="8" alt="Back to top" src="http://msdn.microsoft.com/msdnmag/images/top.gif" width="18" align="bottom" border="0" /> </a> </div> <br /> <a name="S10"> </a> <span id="hvzpftn" class="clsSubhead">鎬葷粨</span> <br /> <p xmlid="PARA056">XmlLite 涓烘湰鏈?C++ 搴旂敤紼嬪簭鎻愪緵浜嗗姛鑳藉己澶х殑 XML 鍒嗘瀽鍣ㄣ傚畠鐫閲嶄簬鎬ц兘錛岀煡閬撳畠鎵浣跨敤鐨勭郴緇熻祫婧愶紝涓烘帶鍒惰繖浜涚壒寰佹彁渚涗簡寰堝ぇ鐨勭伒媧繪с俋mlLite 鏀寔鎵鏈夌殑甯歌鏂囨湰緙栫爜錛屾槸涓縐嶉潪甯告湁鐢ㄧ殑瀹炵敤宸ュ叿錛屽彲浠ョ畝鍖栨湰鏈?C++ 搴旂敤紼嬪簭涓殑 XML 浣跨敤銆傛湁鍏寵緇嗕俊鎭紝璇峰弬闃?<a >msdn2.microsoft.com/ms752872.aspx</a> 涓婄殑 XmlLite 鏂囨。銆?/p> <img src ="http://m.shnenglu.com/cannysyma/aggbug/21006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cannysyma/" target="_blank">Canny</a> 2007-03-31 16:50 <a href="http://m.shnenglu.com/cannysyma/archive/2007/03/31/21006.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++ 瀛︿範絎旇 涔?鏁版嵁綾誨瀷1http://m.shnenglu.com/cannysyma/archive/2007/03/17/20029.htmlCannyCannySat, 17 Mar 2007 11:28:00 GMThttp://m.shnenglu.com/cannysyma/archive/2007/03/17/20029.html鏁村瀷錛?br />C++ 鍩烘湰鏁村瀷 涓郝?char聽銆?short銆伮?int銆伮?long聽 鍏朵腑姣忕綾誨瀷閮芥湁鏈夌鍙風増鏈拰鏃犵鍙風増鏈傚洜姝ゆ誨叡鏈?縐嶇被鍨嬪彲渚涢夋嫨銆?br />C++ 瀵歸暱搴︾殑瑙勫畾
short 鑷沖皯 16浣?br />int 鑷沖皯鍜宻hort 涓鏍烽暱
long 鑷沖皯32浣嶏紝涓旇嚦灝戣鍜宨nt 涓鏍烽暱銆?br />
鏃犵鍙風増鏈?鍦?鍓嶉潰娣誨姞鍏抽敭瀛椔?unsigned
unsigned short聽聽聽聽聽聽聽聽聽聽 unsigned int聽聽 unsigned long聽聽聽聽聽聽聽聽聽聽聽聽 ,濡傛灉 鍙槸 unsigned聽 灝辨槸聽 unsigned int 鐨勭畝鍐欍?br />



Canny 2007-03-17 19:28 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合欧美| 一区二区三区四区蜜桃| 欧美h视频在线| 亚洲天堂免费观看| 亚洲激情在线观看| 国产性做久久久久久| 欧美激情第9页| 亚洲国产成人av好男人在线观看| 久久久蜜桃精品 | 免费亚洲一区| 亚洲一区二区三区三| 精品51国产黑色丝袜高跟鞋| 国产有码一区二区| 国产精品亚洲综合久久| 欧美色图麻豆| 欧美日韩精品二区第二页| 欧美日韩国产大片| 欧美午夜在线一二页| 欧美激情中文字幕一区二区| 欧美激情自拍| 欧美日韩美女在线观看| 国产日韩欧美在线播放不卡| 国产欧美日韩一区二区三区在线 | 国产综合激情| 国语自产精品视频在线看| 国产亚洲精品7777| 一本色道久久综合狠狠躁篇的优点| 一区二区三区视频观看| 欧美一二三区精品| 蜜臀久久久99精品久久久久久| 欧美成人在线网站| 欧美韩国一区| 亚洲第一区在线| 亚洲女ⅴideoshd黑人| 久久不射网站| 亚洲欧美国产日韩中文字幕| 久久精品日产第一区二区| 久久久成人精品| 国产亚洲网站| 午夜日韩av| 日韩一二在线观看| 亚洲欧美韩国| 日韩视频精品在线| 日韩一区二区久久| 久久五月激情| 黑人极品videos精品欧美裸| 一区二区三区日韩欧美精品| 久久中文字幕导航| 午夜在线视频观看日韩17c| 欧美日韩一区二区免费视频| 亚洲午夜黄色| 亚洲图片欧洲图片日韩av| 欧美高清一区二区| 日韩午夜激情电影| 亚洲人成毛片在线播放| 美女免费视频一区| 亚洲欧洲美洲综合色网| 欧美国产三区| 在线日韩欧美视频| 欧美激情中文不卡| 欧美日韩岛国| 欧美成人午夜| 欧美永久精品| 欧美日一区二区在线观看 | 美女免费视频一区| 麻豆精品精品国产自在97香蕉| 亚洲成色www8888| 欧美a级片网| 欧美日韩国产综合在线| 亚洲永久免费精品| 亚洲国内自拍| 欧美日韩一区二区在线播放| 性欧美超级视频| 午夜激情一区| 伊人久久大香线蕉综合热线| 久久综合九色九九| 国产日韩欧美综合| 欧美激情视频在线播放| 欧美大片国产精品| 亚洲精品久久久久中文字幕欢迎你 | 久热re这里精品视频在线6| 亚洲伊人色欲综合网| 一区二区三区在线免费播放| 欧美激情成人在线| 国产精品麻豆成人av电影艾秋| 久久国产欧美精品| 久久福利视频导航| 免费在线欧美黄色| 亚洲日本aⅴ片在线观看香蕉| 蜜臀久久99精品久久久画质超高清| 亚洲在线不卡| 国产视频久久网| 亚洲午夜未删减在线观看| 欧美/亚洲一区| 国产精品一区一区三区| 久久精品99国产精品日本| 国产欧美精品在线| 久久美女艺术照精彩视频福利播放| 久久精品噜噜噜成人av农村| 国内精品国产成人| 久久人人九九| 一本色道久久综合亚洲精品不卡| 亚洲综合色视频| 亚洲黄色成人| 国产女主播一区二区| 免费视频久久| 先锋资源久久| 中文av一区二区| 欧美第十八页| 久久精品国产综合| 亚洲欧美精品suv| 999亚洲国产精| 国内精品久久久久久久97牛牛| 欧美日韩另类在线| 久久gogo国模裸体人体| 99国产精品99久久久久久粉嫩| 久久福利视频导航| 午夜激情综合网| 中文欧美字幕免费| 亚洲校园激情| 亚洲欧美电影院| 亚洲一区二区三区影院| 亚洲另类自拍| 亚洲人成久久| 欧美日韩另类丝袜其他| 欧美成人一区二区| 欧美精品一区二区三区蜜臀| 久久躁狠狠躁夜夜爽| 亚洲天堂成人在线观看| 欧美一区二区三区免费视频| 在线播放一区| 欧美在线精品一区| 在线视频欧美一区| 欧美精品成人一区二区在线观看 | 久久久激情视频| 国产精品福利网站| 亚洲欧美日本视频在线观看| 亚洲国产成人tv| 免费看黄裸体一级大秀欧美| 亚洲欧美另类国产| 国产精品系列在线播放| 国产一区二区三区自拍| 在线日韩视频| 久久精品国产第一区二区三区| 亚洲国产高清在线| 午夜精品久久久99热福利| 女仆av观看一区| 国产精品资源| 亚洲欧美在线看| 亚洲一区二区成人在线观看| 牛牛影视久久网| 在线观看欧美一区| 久久伊人精品天天| 久久精品国产91精品亚洲| 国产精品久久久久9999| 一区二区久久| 亚洲美女一区| 欧美日韩大陆在线| 亚洲视频电影在线| 在线亚洲欧美专区二区| 欧美日韩久久| 午夜精品久久99蜜桃的功能介绍| 最新国产成人av网站网址麻豆| 久久精品视频一| 最近中文字幕日韩精品| 亚洲人久久久| 久久久久国产精品人| 亚洲性线免费观看视频成熟| 一区二区毛片| 欧美一区日韩一区| 亚洲免费婷婷| 欧美影院在线| 欧美性天天影院| 国产综合久久久久久鬼色| 国产精品午夜春色av| 欧美成人中文字幕在线| 午夜精品久久久久久久久久久久久 | 亚洲综合色噜噜狠狠| 亚洲精品国产精品国自产观看| 欧美精品日本| 在线日韩欧美| 99精品久久久| 在线播放亚洲| 中日韩美女免费视频网址在线观看| 国产精品久久国产精品99gif| 久久精品一区二区国产| 欧美视频你懂的| 美女国内精品自产拍在线播放| 欧美不卡三区| 久久久久久噜噜噜久久久精品| 欧美精品一区二区久久婷婷| 久久国产福利| 国产精品电影在线观看| 亚洲二区免费| 在线电影国产精品| 欧美一区二区三区在线| 亚洲欧美成人在线| 国产精品视频免费观看| 夜夜嗨av色一区二区不卡| 制服诱惑一区二区|