TinyXML鏄竴涓畝鍗曞皬宸э紝鍙互寰堝鏄撻泦鎴愬埌鍏跺畠紼嬪簭涓殑C++ XML瑙f瀽鍣ㄣ?
瀹冭兘鍋氫簺浠涔?/strong>
綆鍗曞湴璇達紝TinyXML瑙f瀽涓涓猉ML鏂囨。騫剁敱姝ょ敓鎴愪竴涓彲璇誨彲淇敼鍙繚瀛樼殑鏂囨。瀵硅薄妯″瀷錛圖OM錛夈?
XML鐨勬剰鎬濇槸“鍙墿灞曟爣璁拌璦“錛坋Xtensible Markup
Language錛夈傚畠鍏佽浣犲垱寤轟綘鑷繁鐨勬枃妗f爣璁般傚湪涓烘祻瑙堝櫒鏍囪鏂囨。鏂歸潰HTML鍋氬緱寰堝ソ錛岀劧鑰孹ML鍏佽浣犲畾涔変換浣曟枃妗f爣璁幫紝姣斿鍙互涓轟竴涓粍緇囪?
搴旂敤紼嬪簭瀹氫箟涓涓弿榪?#8220;to do”鍒楄〃鐨勬枃妗c?
XML鎷ユ湁涓涓粨鏋勫寲騫朵笖鏂逛究鐨勬牸寮忥紝鎵鏈変負瀛樺偍搴旂敤紼嬪簭鏁版嵁鑰屽垱寤虹殑闅忔満鏂囦歡鏍煎紡閮藉彲浠ョ敤XML浠f浛錛岃岃繖涓鍒囧彧闇瑕佷竴涓В鏋愬櫒銆?
鏈鍏ㄩ潰姝g‘鐨勮鏄庡彲浠ュ湪http://www.w3.org/TR/2004/REC-xml-20040204/鎵懼埌錛屼絾鍧︾櫧鍦拌錛屽畠寰堟櫐娑╅毦鎳傘備簨瀹炰笂鎴戝枩嬈?a >http://skew.org/xml/tutorial涓婂叧浜嶺ML鐨勪粙緇嶃?
鏈変笉鍚岀殑鏂規(guī)硶鍙互璁塊棶鍜屼笌XML鏁版嵁榪涜浜や簰銆俆inyXML浣跨敤鏂囨。瀵硅薄妯″瀷錛圖OM錛夛紝榪欐剰鍛崇潃XML鏁版嵁琚В鏋愭垚涓涓彲琚祻瑙堝拰鎿嶄綔鐨凜++
瀵硅薄錛岀劧鍚庡畠鍙互琚啓鍒扮鐩樻垨鑰呭彟涓涓緭鍑烘祦涓備綘涔熷彲浠ユ妸C++瀵硅薄鏋勯犳垚涓涓猉ML鏂囨。鐒跺悗鎶婂畠鍐欏埌紓佺洏鎴栬呭彟涓涓緭鍑烘祦涓?
TinyXML琚璁″緱瀹規(guī)槗蹇熶笂鎵嬨傚畠鍙湁涓や釜澶存枃浠跺拰鍥涗釜cpp鏂囦歡銆傚彧闇瑕佹妸瀹冧滑綆鍗曞湴鍔犲埌浣犵殑欏圭洰涓氨琛屼簡銆傛湁涓涓緥瀛愭枃浠垛斺攛mltest.cpp鏉ュ紩瀵間綘璇ユ庝箞鍋氥?
TinyXML浠lib璁稿彲鏉ュ彂甯冿紝鎵浠ヤ綘鍙互鍦ㄥ紑婧愭垨鑰呭晢涓氳蔣浠朵腑浣跨敤瀹冦傝鍙瘉鏇村叿浣撶殑鎻忚堪鍦ㄦ瘡涓簮浠g爜鏂囦歡鐨勯《閮ㄥ彲浠ユ壘鍒般?
TinyXML鍦ㄤ繚璇佹紜拰鎭板綋鐨刋ML杈撳嚭鐨勫熀紜涓婂皾璇曟垚涓轟竴涓伒媧葷殑瑙f瀽鍣ㄣ俆inyXML鍙互鍦ㄤ換浣曞悎鐞嗙殑C++閫傜敤緋葷粺涓婄紪璇戙傚畠涓嶄緷璧栦簬
寮傚父鎴栬呰繍琛屾椂綾誨瀷淇℃伅錛屾湁娌℃湁STL鏀寔閮藉彲浠ョ紪璇戙俆inyXML瀹屽叏鏀寔UTF-8緙栫爜鍜屽墠64k涓瓧絎﹀疄浣擄紙<i>璇戞敞錛氬鏋滀綘涓嶆槑
鐧借繖鍙ヨ瘧鏂囷紝鍙兘浣犻渶瑕佷簡瑙d竴涓婾nicode緙栫爜</i>錛夈?
瀹冩棤娉曞仛浜涗粈涔?/strong>
TinyXML涓嶈В鏋愪笉浣跨敤DTDs錛堟枃妗g被鍨嬪畾涔夛級鎴栬匵SLs錛堝彲鎵╁睍鏍峰紡琛ㄨ璦錛夈傛湁鍏跺畠瑙f瀽鍣紙鍒皐ww.sourceforge.org
鎼滅儲涓涓媂ML錛夊叿鏈夋洿鍔犲叏闈㈢殑鐗規(guī)э紝浣嗗畠浠篃灝辨洿澶э紝闇瑕佽姳鏇撮暱鐨勬椂闂存潵寤虹珛浣犵殑欏圭洰錛屾湁鏇撮櫋鐨勫涔犳洸綰匡紝鑰屼笖緇忓父鏈変竴涓洿涓ユ牸鐨勮鍙崗璁傚鏋滀綘鏄敤
浜庢祻瑙堝櫒鎴栬呮湁鏇村鏉傜殑XML闇瑕侊紝閭d箞TinyXML涓嶉傚悎浣犮?
涓嬮潰鐨凞TD璇硶鍦═inyXML閲屾槸涓嶅仛瑙f瀽鐨勶細
<!DOCTYPE Archiv [
<!ELEMENT Comment (#PCDATA)>
]>
鍥犱負TinyXML鎶婂畠鐪嬫垚鏄竴涓甫鐫闈炴硶宓屽叆!ELEMENT緇撶偣鐨?DOCTYPE緇撶偣銆傛垨璁歌繖鍦ㄥ皢鏉ヤ細寰楀埌鏀寔銆?
鎸囧崡
鏈夎愭т簺錛岃繖鏄竴浠借兘寰堝ソ鍦版寚瀵間綘鎬庝箞寮濮嬬殑鎸囧崡錛屽畠錛堥潪甯哥煭灝忕簿鎮(zhèn)嶏級鍊煎緱浣犺姳鏃墮棿瀹屾暣鍦拌涓婁竴閬嶃?
浠g爜鐘跺喌
TinyXML鏄垚鐔熶笖緇忚繃嫻嬭瘯鐨勪唬鐮侊紝闈炲父鍋ュ.銆傚鏋滀綘鍙戠幇浜嗘紡媧烇紝璇鋒彁浜ゆ紡媧炴姤鍛婂埌sourcefore緗戠珯涓?錛坵ww.sourceforge.net/projects/tinyxml錛夈?鎴戜滑浼氬敖蹇慨姝c?
鏈変簺鍦版柟鍙互璁╀綘寰楀埌鎻愰珮錛屽鏋滀綘瀵筎inyXML鐨勫伐浣滄劅鍏磋叮鐨勮瘽鍙互涓妔ourceforge鏌ユ壘涓涓嬨?
鐩稿叧欏圭洰
浣犱篃璁鎬細瑙夊緱TinyXML寰堟湁鐢紒錛堢畝浠嬬敱欏圭洰鎻愪緵錛?
鐗規(guī)?/strong>
浣跨敤STL
TinyXML鍙互琚紪璇戞垚浣跨敤鎴栦笉浣跨敤STL銆傚鏋滀嬌鐢⊿TL錛孴inyXML浼氫嬌鐢╯td::string綾伙紝鑰屼笖瀹屽叏鏀寔
std::istream錛宻td::ostream錛宱perator<<鍜宱perator>>銆傝澶欰PI鏂規(guī)硶閮芥湁
‘const char*’鍜?#8217;const std::string&’涓や釜鐗堟湰銆?
濡傛灉琚紪璇戞垚涓嶄嬌鐢⊿TL錛屽垯浠諱綍STL閮戒笉浼氳鍖呭惈銆傛墍鏈塻tring綾婚兘鐢盩inyXML瀹冭嚜宸卞疄鐜般傛墍鏈堿PI鏂規(guī)硶閮藉彧鎻愪緵’const char*’浼犲叆鍙傛暟銆?
浣跨敤榪愯鏃跺畾涔夛細
TIXML_USE_STL
鏉ョ紪璇戞垚涓嶅悓鐨勭増鏈傝繖鍙互浣滀負鍙傛暟浼犵粰緙栬瘧鍣ㄦ垨鑰呭湪“tinyxml.h”鏂囦歡鐨勭涓琛岃繘琛岃緗?
娉ㄦ剰錛氬鏋滃湪Linux涓婄紪璇戞祴璇曚唬鐮侊紝璁劇疆鐜鍙橀噺TINYXML_USE_STL=YES/NO鍙互鎺у埗STL鐨勭紪璇戙傝屽湪Windows涓婏紝
欏圭洰鏂囦歡鎻愪緵浜哠TL鍜岄潪STL涓ょ鐩爣鏂囦歡銆傚湪浣犵殑欏圭洰涓紝鍦╰inyxml.h鐨勭涓琛屾坊鍔?#define
TIXML_USE_STL"搴旇鏄渶綆鍗曠殑銆?
UTF-8
TinyXML鏀寔UTF-8錛屾墍浠ュ彲浠ュ鐞嗕換浣曡璦鐨刋ML鏂囦歡錛岃屼笖TinyXML涔熸敮鎸?#8220;legacy妯″紡”鈥斺斾竴縐嶅湪鏀寔UTF-8涔嬪墠浣跨敤鐨勭紪鐮佹柟寮忥紝鍙兘鏈濂界殑瑙i噴鏄?#8220;鎵╁睍鐨刟scii”銆?
姝e父鎯呭喌涓嬶紝TinyXML浼氭嫻嬪嚭姝g‘鐨勭紪鐮佸茍浣跨敤瀹冿紝鐒惰岋紝閫氳繃璁劇疆澶存枃浠朵腑鐨凾IXML_DEFAULT_ENCODING鍊鹼紝TinyXML鍙互琚己鍒舵垚鎬繪槸浣跨敤鏌愪竴縐嶇紪鐮併?
闄ら潪浠ヤ笅鎯呭喌鍙戠敓錛屽惁鍒橳inyXML浼氶粯璁や嬌鐢↙egacy妯″紡錛?
- 濡傛灉鏂囦歡鎴栬呮暟鎹祦浠ラ潪鏍囧噯浣嗘櫘閬嶇殑"UTF-8寮曞瀛楄妭" (0xef 0xbb 0xbf)寮濮嬶紝TinyXML浼氫互UTF-8鐨勬柟寮忔潵璇誨彇瀹冦?/li>
- 濡傛灉鍖呭惈鏈塭ncoding="UTF-8"鐨勫0鏄庤璇誨彇錛岄偅涔圱inyXML浼氫互UTF-8鐨勬柟寮忔潵璇誨彇瀹冦?/li>
- 濡傛灉璇誨彇鍒版病鏈夋寚瀹氱紪鐮佹柟寮忕殑澹版槑錛岄偅涔圱inyXML浼氫互UTF-8鐨勬柟寮忔潵璇誨彇瀹冦?/li>
- 濡傛灉鍖呭惈鏈塭ncoding=“鍏跺畠緙栫爜”鐨勫0鏄庤璇誨彇錛岄偅涔圱inyXML浼氫互Legacy妯″紡鏉ヨ鍙栧畠銆傚湪Legacy妯″紡涓嬶紝TinyXML浼氬儚浠ュ墠閭f牱宸ヤ綔錛岃櫧鐒跺凡緇忎笉鏄緢娓呮榪欑妯″紡鏄浣曞伐浣滅殑浜嗭紝浣嗘棫鐨勫唴瀹硅繕寰椾繚鎸佽兘澶熻繍琛屻?/li>
- 闄や簡涓婇潰鎻愬埌鐨勬儏鍐碉紝TinyXML浼氶粯璁よ繍琛屽湪Legacy妯″紡涓嬨?/li>
濡傛灉緙栫爜璁劇疆閿欒鎴栬呮嫻嬪埌閿欒浼氬彂鐢熶粈涔堜簨鍛紵TinyXML浼氬皾璇曡煩榪囪繖浜涚湅浼間笉姝g‘鐨勭紪鐮侊紝浣犲彲鑳戒細寰楀埌涓浜涘鎬殑緇撴灉鎴栬呬貢鐮侊紝浣犲彲浠ュ己鍒禩inyXML浣跨敤姝g‘鐨勭紪鐮佹ā寮忋?
閫氳繃浣跨敤LoadFile( TIXML_ENCODING_LEGACY )鎴栬匧oadFile( filename,
TIXML_ENCODING_LEGACY )錛?
浣犲彲浠ュ己鍒禩inyXML浣跨敤Legacy妯″紡銆備綘涔熷彲浠ラ氳繃璁劇疆TIXML_DEFAULT_ENCODING =
TIXML_ENCODING_LEGACY鏉ュ己鍒朵竴鐩翠嬌鐢↙egacy妯″紡銆傚悓鏍風殑錛屼綘涔熷彲浠ラ氳繃鐩稿悓鐨勬柟娉曟潵寮哄埗璁劇疆鎴?
TIXML_ENCODING_UTF8銆?
瀵逛簬浣跨敤鑻辨枃XML鐨勮嫳璇敤鎴鋒潵璇達紝UTF-8璺焞ow-ASCII鏄竴鏍風殑銆備綘涓嶉渶瑕佺煡閬揢TF-8鎴栬呬竴鐐逛篃涓嶉渶瑕佷慨鏀逛綘鐨勪唬鐮併備綘鍙互鎶奤TF-8褰撲綔鏄疉SCII鐨勮秴闆嗐?
UTF-8騫朵笉鏄竴縐嶅弻瀛楄妭鏍煎紡錛屼絾瀹冩槸涓縐嶆爣鍑嗙殑Unicode緙栫爜錛乀inyXML褰撳墠涓嶄嬌鐢ㄦ垨鑰呯洿鎺ユ敮鎸亀char錛孴CHAR錛屾垨鑰呭井杞殑
_UNICODE銆?Unicode"榪欎釜鏈琚櫘閬嶅湴璁や負鎸囩殑鏄疷TF-16錛堜竴縐島nicode鐨勫瀛楄妭緙栫爜錛夋槸涓嶉傚綋鐨勶紝榪欐槸娣鋒穯鐨勬潵婧愩?
瀵逛簬“high-ascii”璇█鏉ヨ鈥斺斿嚑涔庢墍鏈夐潪鑻辮璇█錛屽彧瑕乆ML琚紪鐮佹垚UTF-8錛?
TinyXML灝辮兘澶熷鐞嗐傝璧鋒潵鍙兘鏈夌偣寰錛屾瘮杈冩棫鐨勭▼搴忓拰鎿嶄綔緋葷粺瓚嬪悜浜庝嬌鐢?#8220;榛樿”鎴栬?#8220;浼犵粺”鐨勭紪鐮佹柟寮忋傝澶氬簲鐢ㄧ▼搴忥紙鍜屽嚑涔庢墍鏈夌幇鍦ㄧ殑搴旂敤
紼嬪簭錛夐兘鑳藉杈撳嚭UTF-8錛屼絾鏄偅浜涙瘮杈冩棫鎴栬呴毦澶勭悊鐨勶紙鎴栬呭共鑴嗕笉鑳戒嬌鐢ㄧ殑錛夌郴緇熻繕鏄彧鑳戒互榛樿緙栫爜鏉ヨ緭鍑烘枃鏈?
姣斿璇達紝鏃ユ湰鐨勭郴緇熶紶緇熶笂浣跨敤SHIFT-JIS緙栫爜錛岃繖縐嶆儏鍐典笅TinyXML灝辨棤娉曡鍙栦簡銆備絾鏄竴涓ソ鐨勬枃鏈紪杈戝櫒鍙互瀵煎叆SHIFT-JIS鐨勬枃鏈劧鍚庝繚瀛樻垚UTF-8緙栫爜鏍煎紡鐨勩?
Skew.org link涓婂叧浜庤漿鎹㈢紪鐮佺殑璇濋鍋氬緱寰堝ソ銆?
嫻嬭瘯鏂囦歡“utf8test.xml”鍖呭惈浜嗚嫳鏂囥佽タ鐝墮鏂囥佷縿鏂囧拰綆浣撲腑鏂囷紙甯屾湜瀹冧滑閮借兘澶熻姝g‘鍦拌漿鍖栵級銆?#8220;utf8test.gif”鏂囦歡鏄?
浠嶪E涓婃埅鍙栫殑XML鏂囦歡蹇収銆傝娉ㄦ剰濡傛灉浣犵殑緋葷粺涓婃病鏈夋紜殑瀛椾綋錛堢畝浣撲腑鏂囨垨鑰呬縿鏂囷級錛岄偅涔堝嵆浣夸綘姝g‘鍦拌В鏋愪簡涔熺湅涓嶅埌涓嶨IF鏂囦歡涓婁竴鏍風殑杈撳嚭銆傚悓
鏃惰娉ㄦ剰鍦ㄤ竴涓タ鏂圭紪鐮佺殑鎺у埗鍙頒笂錛堣嚦灝戞垜鐨刉indows鏈哄櫒鏄繖鏍鳳級錛孭rint()鎴栬卲rintf()涔熸棤娉曟紜湴鏄劇ず榪欎釜鏂囦歡錛岃繖涓嶅叧
TinyXML鐨勪簨鈥斺旇繖鍙槸鎿嶄綔緋葷粺鐨勯棶棰樸俆inyXML娌℃湁涓㈡帀鎴栬呮崯鍧忔暟鎹紝鍙槸鎺у埗鍙版棤娉曟樉紺篣TF-8鑰屽凡銆?
瀹炰綋
TinyXML璁ゅ緱棰勫畾涔夌殑鐗規(guī)畩“瀛楃瀹炰綋”錛屽嵆錛?
& &
< <
> >
" "
' ‘
榪欎簺鍦╔ML鏂囨。璇誨彇鏃墮兘浼氳杈ㄨ鍑烘潵錛屽茍浼氳杞寲鎴愮瓑浠風殑UTF-8瀛楃銆傛瘮濡備笅闈㈢殑XML鏂囨湰錛?
Far & Away
浠嶵iXmlText 瀵硅薄鏌ヨ鍑烘潵鏃朵細鍙樻垚"Far & Away"榪欐牱鐨勫鹼紝鑰屽啓鍥瀀ML嫻?鏂囦歡鏃朵細浠?#8220;&”鐨勬柟寮忓啓鍥炪傝佺増鏈殑TinyXML“淇濈暀”浜嗗瓧絎﹀疄浣擄紝鑰屽湪鏂扮増鏈腑瀹冧滑浼氳杞寲鎴愬瓧絎︿覆銆?
鍙﹀錛屾墍鏈夊瓧絎﹂兘鍙互鐢ㄥ畠鐨刄nicode緙栫爜鏁板瓧鏉ユ寚瀹氾紝 " "鍜? "閮借〃紺轟笉鍙垎鐨勭┖鏍煎瓧絎︺?
鎵撳嵃
TinyXML鏈夊嚑縐嶄笉鍚岀殑鏂瑰紡鏉ユ墦鍗拌緭鍑猴紝褰撶劧瀹冧滑鍚勬湁鍚勭殑浼樼己鐐廣?
- Print( FILE* )錛氳緭鍑哄埌涓涓爣鍑咰嫻佷腑錛屽寘鎷墍鏈夌殑C鏂囦歡鍜屾爣鍑嗚緭鍑恒?/li>
- "鐩稿綋婕備寒鐨勬墦鍗?, 浣嗕綘娌℃硶鎺у埗鎵撳嵃閫夐」銆?/li>
- 杈撳嚭鏁版嵁鐩存帴鍐欏埌FILE瀵硅薄涓紝鎵浠inyXML浠g爜娌℃湁鍐呭瓨璐熸媴銆?/li>
- 琚玃rint()鍜孲aveFile()璋冪敤銆?/li>
- operator<<錛氳緭鍑哄埌涓涓猚++嫻佷腑銆?/li>
- 涓嶤++ iostreams闆嗘垚鍦ㄤ竴璧楓?/li>
- 鍦?network printing"妯″紡涓嬭緭鍑烘病鏈夋崲琛岀錛岃繖瀵逛簬緗戠粶浼犺緭鍜孋++瀵硅薄涔嬮棿鐨刋ML浜ゆ崲鏈夊ソ澶勶紝浣嗕漢寰堥毦闃呰銆?/li>
- TiXmlPrinter錛氳緭鍑哄埌涓涓猻td::string鎴栬呭唴瀛樼紦鍐插尯涓?/li>
- API榪樹笉鏄緢綆緇冦?/li>
- 灝嗘潵浼氬鍔犳墦鍗伴夐」銆?/li>
- 鍦ㄥ皢鏉ョ殑鐗堟湰涓彲鑳芥湁浜涚粏寰殑鍙樺寲錛屽洜涓哄畠浼氳鏀硅繘鍜屾墿灞曘?/li>
嫻?/strong>
璁劇疆浜員IXML_USE_STL錛孴inyXML灝辮兘鏀寔C++嫻侊紙operator <<錛?gt;>錛夊拰C錛團ILE*錛夋祦銆備絾瀹冧滑涔嬮棿鏈変簺宸紓浣犻渶瑕佺煡閬擄細
C椋庢牸杈撳嚭錛?
- 鍩轟簬FILE*
- 鐢≒rint()鍜孲aveFile()鏂規(guī)硶
鐢熸垚鍏鋒湁寰堝絀烘牸鐨勬牸寮忓寲榪囩殑杈撳嚭錛岃繖鏄負浜嗗敖鍙兘璁╀漢鐪嬪緱鏄庣櫧銆傚畠浠潪甯稿揩錛岃屼笖鑳藉瀹瑰繊XML鏂囨。涓殑鏍煎紡閿欒銆備緥濡備竴涓猉ML鏂囨。鍖呭惈涓や釜鏍瑰厓绱犲拰涓や釜澹版槑浠嶇劧鑳借鎵撳嵃鍑烘潵銆?
C椋庢牸杈撳叆錛?/p>
- 鍩轟簬FILE*
- 鐢≒arse()鍜孡oadFile()鏂規(guī)硶
閫熷害蹇紝瀹歸敊鎬уソ銆傚綋浣犱笉闇瑕丆++嫻佹椂灝卞彲浠ヤ嬌鐢ㄥ畠銆?
C++椋庢牸杈撳嚭錛?
- 鍩轟簬std::ostream
- operator<<
鐢熸垚鍘嬬緝榪囩殑杈撳嚭錛岀洰鐨勬槸涓轟簡渚夸簬緗戠粶浼犺緭鑰屼笉鏄負浜嗗彲璇繪с傚畠鍙兘鏈変簺鎱紙鍙兘涓嶄細錛夛紝榪欎富瑕佽窡浣犵郴緇熶笂ostream綾葷殑瀹炵幇鏈夊叧銆傛棤娉曞蹇嶆牸寮忛敊璇殑XML錛氭鏂囨。鍙兘鍖呭惈涓涓牴鍏冪礌銆傚彟澶栨牴綰у埆鐨勫厓绱犳棤娉曚互嫻佸艦寮忚緭鍑恒?
C++椋庢牸杈撳叆錛?
- 鍩轟簬std::istream
- operator>>
浠庢祦涓鍙朮ML浣垮叾鍙敤浜庣綉緇滀紶杈撱傞氳繃浜涘皬鎶宸э紝瀹冪煡閬撳綋XML鏂囨。璇誨彇瀹屾瘯鏃訛紝嫻佸悗闈㈢殑灝變竴瀹氭槸鍏跺畠鏁版嵁浜嗐俆inyXML鎬誨亣瀹氬綋瀹冭鍙栧埌
鏍圭粨鐐瑰悗XML鏁版嵁灝辯粨鏉熶簡銆傛崲鍙ヨ瘽璇達紝閭d簺鍏鋒湁涓嶆涓涓牴鍏冪礌鐨勬枃妗f槸鏃犳硶琚紜鍙栫殑銆傚彟澶栬繕瑕佹敞鎰忕敱浜嶴TL鐨勫疄鐜板拰TinyXML鐨勯檺
鍒訛紝operator>>浼氭瘮Parse鎱竴浜涖?
絀烘牸
瀵規(guī)槸淇濈暀榪樻槸鍘嬬緝絀烘牸榪欎竴闂浜轟滑榪樻病杈炬垚鍏辮瘑銆備婦涓緥瀛愶紝鍋囪‘_’浠h〃涓涓┖鏍鹼紝瀵逛簬"Hello____world"錛孒TML鍜屾煇浜沊ML
瑙f瀽鍣ㄤ細瑙i噴鎴?Hello_world"錛屽畠浠帇緙╂帀浜嗕竴浜涚┖鏍箋傝屾湁浜沊ML瑙f瀽鍣ㄥ嵈涓嶄細榪欐牱錛屽畠浠細淇濈暀絀烘牸錛屼簬鏄氨鏄?
“Hello____world”錛堣浣廮琛ㄧず涓涓┖鏍鹼級銆傚叾瀹冪殑榪樺緩璁甠_Hello___world__搴旇鍙樻垚Hello___world 銆?
榪欐槸涓涓В鍐沖緱涓嶈兘璁╂垜婊℃剰鐨勯棶棰樸俆inyXML涓寮濮嬪氨涓ょ鏂瑰紡閮芥敮鎸併傝皟鐢═iXmlBase::SetCondenseWhiteSpace( bool )鏉ヨ緗綘鎯寵鐨勭粨鏋滐紝榛樿鏄帇緙╂帀澶氫綑鐨勭┖鏍箋?
濡傛灉鎯寵鏀瑰彉榛樿琛屼負錛屼綘搴旇鍦ㄨВ鏋愪換浣昘ML鏁版嵁涔嬪墠璋冪敤TiXmlBase::SetCondenseWhiteSpace( bool ) 錛岃屼笖鎴戜笉寤鴻璁劇疆涔嬪悗鍐嶅幓鏀瑰姩瀹冦?
鍙ユ焺
鎯寵鍋ュ.鍦拌鍙栦竴涓猉ML鏂囨。錛屾鏌ユ柟娉曡皟鐢ㄥ悗鐨勮繑鍥炲兼槸鍚︿負null鏄緢閲嶈鐨勩備竴縐嶅畨鍏ㄧ殑媯閿欏疄鐜板彲鑳戒細浜х敓鍍忚繖鏍風殑浠g爜錛?
TiXmlElement* root = document.FirstChildElement( "Document" );
if ( root )
{
TiXmlElement* element = root->FirstChildElement( "Element" );
if ( element )
{
TiXmlElement* child = element->FirstChildElement( "Child" );
if ( child )
{
TiXmlElement* child2 = child->NextSiblingElement( "Child" );
if ( child2 )
{
// Finally do something useful.
鐢ㄥ彞鏌勭殑璇濆氨涓嶄細榪欎箞鍐楅暱浜嗭紝浣跨敤TiXmlHandle綾伙紝鍓嶉潰鐨勪唬鐮佸氨浼氬彉鎴愯繖鏍鳳細
TiXmlHandle docHandle( &document );
TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement();
if ( child2 )
{
// do something useful
榪欏鐞嗚搗鏉ュ鏄撳浜嗐?鏌ラ槄TiXmlHandle鍙互寰楀埌鏇村鐨勪俊鎭?
琛屽垪榪借釜
瀵逛簬鏌愪簺搴旂敤紼嬪簭鏉ヨ錛岃兘澶熻拷韙妭鐐瑰拰灞炴у湪瀹冧滑婧愭枃浠朵腑鐨勫師濮嬩綅緗槸寰堥噸瑕佺殑銆傚彟澶栵紝鐭ラ亾瑙f瀽閿欒鍦ㄦ簮鏂囦歡涓殑鍙戠敓浣嶇疆鍙互鑺傜渷澶ч噺鏃墮棿銆?
TinyXML鑳藉榪借釜鎵鏈夌粨鐐瑰拰灞炴у湪鏂囨湰鏂囦歡涓殑琛屽垪鍘熷浣嶇疆銆俆iXmlBase::Row() 鍜?
TiXmlBase::Column()
鏂規(guī)硶榪斿洖緇撶偣鍦ㄦ簮鏂囦歡涓殑鍘熷浣嶇疆銆傛紜殑鍒惰〃絎﹀彿鍙互緇忕敱TiXmlDocument::SetTabSize() 鏉ラ厤緗?
浣跨敤涓庡畨瑁?/strong>
緙栬瘧涓庤繍琛寈mltest錛?
鎻愪緵浜嗕竴涓狶inux Makefile鍜屼竴涓猈indows Visual C++ .dsw 鏂囦歡銆傚彧闇瑕佺畝鍗曞湴緙栬瘧鍜岃繍琛岋紝瀹冨氨浼氬湪浣犵殑紓佺洏涓婄敓鎴恉emotest.xml鏂囦歡騫跺湪灞忓箷涓婅緭鍑恒傚畠榪樺皾璇曠敤涓嶅悓鐨勬柟娉曢亶鍘咲OM騫舵墦鍗板嚭緇撶偣鏁般?
閭d釜Linux makefile寰堥氱敤錛屽彲浠ヨ繍琛屽湪寰堝緋葷粺涓娾斺斿畠鐩墠宸茬粡鍦╩ingw鍜孧acOSX涓婃祴璇曡繃銆備綘涓嶉渶瑕佽繍琛?‘make depend’錛屽洜涓洪偅浜涗緷璧栧叧緋誨凡緇忕‖緙栫爜鍦ㄦ枃浠墮噷浜嗐?
鐢ㄤ簬VC6鐨刉indows欏圭洰鏂囦歡
- tinyxml錛?tinyxml 搴擄紝闈濻TL
- tinyxmlSTL錛?tinyxml 搴擄紝STL
- tinyXmlTest錛?鐢ㄤ簬嫻嬭瘯鐨勫簲鐢ㄧ▼搴忥紝闈濻TL
- tinyXmlTestSTL錛?鐢ㄤ簬嫻嬭瘯鐨勫簲鐢ㄧ▼搴忥紝STL
Makefile
鍦╩akefile鐨勯《閮ㄤ綘鍙互璁劇疆錛?
PROFILE錛孌EBUG錛屽拰TINYXML_USE_STL銆俶akefile閲屾湁鍏蜂綋鎻忚堪銆?
鍦╰inyxml鐩綍杈撳叆“make clean”鐒跺悗“make”錛屽氨鍙互鐢熸垚鍙墽琛岀殑“xmltest”鏂囦歡銆?
鍦ㄦ煇涓搴旂敤紼嬪簭涓嬌鐢細
鎶妕inyxml.cpp錛宼inyxml.h錛?tinyxmlerror.cpp錛?tinyxmlparser.cpp錛?
tinystr.cpp錛?鍜?tinystr.h
娣誨姞鍒頒綘鐨勯」鐩拰makefile涓傚氨榪欎箞綆鍗曪紝瀹冨彲浠ュ湪浠諱綍鍚堢悊鐨凜++閫傜敤緋葷粺涓婄紪璇戙備笉闇瑕佷負TinyXML鎵撳紑寮傚父鎴栬呰繍琛屾椂綾誨瀷淇℃伅鏀寔銆?
TinyXML鎬庝箞宸ヤ綔
涓句釜渚嬪瓙鍙兘鏄渶濂界殑鍔炴硶錛岀悊瑙d竴涓嬶細
<?xml version="1.0" standalone=no>
<!– Our to do list data –>
<ToDo>
<Item priority="1"> Go to the <bold>Toy store!</bold></Item>
<Item priority="2"> Do bills</Item>
</ToDo>
瀹冪О涓嶄笂鏄竴涓猅o Do鍒楄〃錛屼絾瀹冨凡緇忚凍澶熶簡銆傚儚涓嬮潰榪欐牱璇誨彇騫惰В鏋愯繖涓枃浠訛紙鍙?#8220;demo.xml”錛変綘灝辮兘鍒涘緩涓涓枃妗o細
TiXmlDocument doc( "demo.xml" );
doc.LoadFile();
鐜板湪瀹冨噯澶囧ソ浜嗭紝璁╂垜浠湅鐪嬪叾涓殑鏌愪簺琛屽拰瀹冧滑鎬庝箞涓嶥OM鑱旂郴璧鋒潵銆?
<?xml version="1.0" standalone=no>
絎竴琛屾槸涓涓0鏄庯紝瀹冧細杞寲鎴怲iXmlDeclaration 綾伙紝鍚屾椂涔熸槸鏂囨。緇撶偣鐨勭涓涓瓙緇撶偣銆?
榪欐槸TinyXML鍞竴鑳藉瑙f瀽鐨勬寚浠?鐗規(guī)畩鏍囩銆備竴鑸潵璇存寚浠ゆ爣絳句細淇濆瓨鍦═iXmlUnknown 浠ヤ繚璇佸湪瀹冧繚瀛樺洖紓佺洏鏃朵笉浼氫涪澶辮繖浜涘懡浠ゃ?
<!– Our to do list data –>
榪欐槸涓涓敞閲婏紝浼氭垚涓轟竴涓猅iXmlComment瀵硅薄銆?
<ToDo>
"ToDo"鏍囩瀹氫箟浜嗕竴涓猅iXmlElement 瀵硅薄銆傚畠娌℃湁浠諱綍灞炴э紝浣嗗寘鍚彟澶栫殑涓や釜鍏冪礌銆?
<Item priority="1">
鐢熸垚鍙︿竴涓猅iXmlElement瀵硅薄錛屽畠鏄?#8220;ToDo”鍏冪礌鐨勫瓙緇撶偣銆傛鍏冪礌鏈変竴涓悕涓?#8220;priority”鍜屽間負“1”鐨勫睘鎬с?
Go to the
TiXmlText 錛岃繖鏄竴涓彾瀛愮粨鐐癸紝瀹冧笉鑳藉啀鍖呭惈鍏跺畠緇撶偣錛屾槸"Item" TiXmlElement鐨勫瓙緇撶偣銆?
<bold>
鍙︿竴涓猅iXmlElement, 榪欎篃鏄?#8220;Item”鍏冪礌鐨勫瓙緇撶偣銆?
絳夌瓑
鏈鍚庯紝鐪嬬湅鏁翠釜瀵硅薄鏍戯細
TiXmlDocument "demo.xml"
TiXmlDeclaration "version=’1.0′" "standalone=no"
TiXmlComment " Our to do list data"
TiXmlElement "ToDo"
TiXmlElement "Item" Attribtutes: priority = 1
TiXmlText "Go to the "
TiXmlElement "bold"
TiXmlText "Toy store!"
TiXmlElement "Item" Attributes: priority=2
TiXmlText "Do bills"
鏂囨。
鏈枃妗g敱Doxygen浣跨敤‘dox’閰嶇疆鏂囦歡鐢熸垚銆?
璁稿彲璇?/strong>
TinyXML鍩轟簬zlib璁稿彲璇佹潵鍙戝竷錛?
鏈蔣浠舵寜“鐜扮姸”鎻愪緵錛堝嵆鐜板湪浣犵湅鍒扮殑鏍峰瓙錛夛紝涓嶅仛浠諱綍鏄庣‘鎴栭殣鏅︾殑淇濊瘉銆傜敱浣跨敤姝よ蔣浠舵墍寮曡搗鐨勪換浣曟崯澶遍兘鍐充笉鍙兘鐢變綔鑰呮壙鎷呫?
鍙閬靛驚涓嬮潰鐨勯檺鍒訛紝灝卞厑璁鎬換浣曚漢鎶婅繖杞歡鐢ㄤ簬浠諱綍鐩殑錛屽寘鎷晢涓氳蔣浠訛紝涔熷厑璁鎬慨鏀瑰畠騫惰嚜鐢卞湴閲嶆柊鍙戝竷錛?
1. 鍐充笉鑳借櫄鎶ヨ蔣浠剁殑鏉ユ簮錛涗綘鍐充笉鑳藉0縐版槸浣犳槸杞歡鐨勭涓浣滆呫傚鏋滀綘鍦ㄦ煇涓駭鍝佷腑浣跨敤浜嗚繖涓蔣浠訛紝閭d箞鍦ㄤ駭鍝佹枃妗d腑鍔犲叆涓涓嚧璋㈣緸鎴戜滑浼氬緢鎰熸縺錛屼絾榪欏茍闈炲繀瑕併?
2. 淇敼浜嗘簮鐗堟湰灝卞簲璇ユ竻妤氬湴鏍囪鍑烘潵錛屽喅涓嶈兘铏氭姤璇磋繖鏄師濮嬭蔣浠躲?
3. 鏈氬憡涓嶈兘浠庢簮鍙戝竷鐗堟湰涓Щ闄ゆ垨鍋氫慨鏀廣?
鍙傝冧功鐩?/strong>
涓囩淮緗戣仈鐩熸槸瀹氬埗XML鐨勬潈濞佹爣鍑嗘満鏋勶紝瀹冪殑緗戦〉涓婃湁澶ч噺鐨勪俊鎭?
鏉冨▉鎸囧崡錛?a >http://www.w3.org/TR/2004/REC-xml-20040204/
鎴戣繕瑕佹帹鑽愮敱O(jiān)Reilly鍑虹増鐢盧obert Eckstein鎾板啓鐨?XML Pocket Reference"……榪欐湰涔﹀泭鎷簡鍏ラ棬鎵闇瑕佺殑涓鍒囥?
鎹愬姪鑰咃紝鑱旂郴浜猴紝榪樻湁綆鍙?/strong>
闈炲父鎰熻阿緇欐垜浠緩璁紝婕忔礊鎶ュ憡錛屾剰瑙佸拰榧撳姳鐨勬墍鏈変漢銆傚畠浠緢鏈夌敤錛屽茍涓斾嬌寰楄繖涓」鐩彉寰楁湁瓚c傜壒鍒劅璋㈤偅浜涙崘鍔╄咃紝鏄粬浠榪欎釜緗戠珯欏甸潰鐢熸満鍕冨媰銆?
鏈夊緢澶氫漢鍙戞潵婕忔礊鎶ュ憡鍜屾剰瑙侊紝涓庡叾鍦ㄨ繖閲屼竴涓鍒楀嚭鏉ヤ笉濡傛垜浠瘯鐫鎶婂畠浠啓鍒?#8220;changes.txt”鏂囦歡涓姞浠ヨ禐鎵?
TinyXML鐨勫師浣滆呮槸Lee Thomason(鏂囨。涓繕緇忓父鍑虹幇“鎴?#8221;榪欎釜璇? 銆傚湪Yves Berquin錛孉ndrew Ellerton錛屽拰tinyXml紺懼尯鐨勫府鍔╀笅錛孡ee鏌ラ槄淇敼鍜屽彂甯冩柊鐗堟湰銆?
鎴戜滑浼氬緢鎰熸縺浣犵殑寤鴻錛岃繕鏈夋垜浠兂鐭ラ亾浣犳槸鍚﹀湪浣跨敤TinyXML銆傚笇鏈涗綘鍠滄瀹冨茍瑙夊緱瀹冨緢鏈夌敤銆傝閭瘎闂錛岃瘎璁猴紝婕忔礊鎶ュ憡緇欐垜浠紝鎴栬呬綘涔熷彲鐧誨綍緗戠珯涓庢垜浠彇寰楄仈緋伙細
www.sourceforge.net/projects/tinyxml
Lee Thomason錛?Yves Berquin錛?Andrew Ellerton

]]>