xml c++操作

來源:互聯網
上載者:User

【IT168 技術文檔】或許你看到這個標題會感到非常的驚訝,因為截至到現在,恐怕是沒有多少人沒有使用過XML文檔了吧。
不過如果你是一個VC6或者是VC7中native code的使用者的話,我想您或許會產生一些興趣。

    在MFC中沒有提供對XML的操作的類,如果是忠實的COM支援者的話,可以選擇使用微軟的MSXML DOM 來操作一個xml檔案。
    如果是開源,又或者是對跨平台的支援的話,您可以選擇使用WFC,XML4C 當然還有apache 的著名的Xerces C++ 來操作,使用這些類庫基本上都可以比較簡單方便高效的實現對xml檔案的讀寫。並且都支援XML 的最新標準。

    不過,不要忘記一件事情,需要使用VC來讀寫XML檔案的基本上都是一些設定檔,比如Visual Studio .net 的工程檔案,這樣的檔案的大小一般都會限制在一定的容量以內。如果我們採用上面的任何一個方法,都需要下載幾M甚至10幾M的庫檔案。真的是有些不合算。

    感謝sourceforge,感謝google 給我們提供了足夠多的資源來簡化我們的開發,在這裡我給大家介紹一個短小精悍的XML parse class----TinyXml,tinyXml 不光短小,效率也是很高,而且使用這個class 可以很快地定位 我們需要在Xml中定位的Node。它提供了一個叫做 TiXmlNode* FirstChild ( const std::string& _value ) 的方法,以最簡單的方式開始我們對 Xml 檔案節點的讀寫。

    經過實踐,發現這個class 讀寫xml 的速度也還是很不錯的,要是說缺點,就是對Unicode的支援還有一些bug。比如說下面的xml 標籤的解釋就有bug

<Filter Name="程式" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx">

    但是如果你改成

<Filter Name="程式file" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx">

    的話,就可以了。 1  http://www.jclark.com/xml/expat.html 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.