程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 常見C/C++ XML解析器比較

常見C/C++ XML解析器比較

編輯:關於C語言
 

常見C/C++ XML解析器有tinyxml、XERCES、squashxml、xmlite、pugxml、libxml等等,這些解析器有些是支持多語言的,有些只是單純C/C++的。如果你是第一次接觸到XML解析,那麼關於XML解析器的選擇問題的確令人頭疼,我們先看一下這些解析器有哪些特點。

一、Xerces XML解析器

官方網址:http://xerces.apache.org/xerces-c/

Xerces前身是IBM的XML4C,XML4C也是一種功能強大的XML解析器,之後交給Apache基金會管理,遂改名為Xerces,Xerces-C++讓你的程序提供讀寫XML數據更加容易,提供的共享庫通過DOM、SAX、SAX2 API等方式對XML文檔進行解析、生成、操作和驗證。

Xerces-C++忠實於XML 1.0建議和相關標准。

Xerces-C++解析器高性能、模塊化並且可擴展。相關開發資料也比較完善。

除了C++版本,Xerces同時還提供Xerces Java,Xerces Perl等版本。

二、TinyXML解析器

官方網址:http://www.grinninglizard.com/tinyxml/

TinyXML相比Xerces要功能簡單些,正如其名Tiny,使用方法也比較簡單,TinyXML也是一個開源的解析XML解析庫,用於C++,支持Windows和Linux。TinyXML通過DOM模型遍歷和分析XML。官方文檔:

http://www.grinninglizard.com/tinyxmldocs/index.html

三、squashXML解析器

官方地址:http://ostatic.com/squashxml

這個解析器在國內似乎少人使用,這個解析器也有些歷史了。squashXML基於DOM Level2,也是一個XML輕量級的解析器。天緣之所以把這個寫上是天緣比較看重這個解析器的目錄劃分及使用說明,易懂而且易上手。

四、XMLBooster解析器

官方網址:http://www.xmlbooster.com/

XMLBooster開發關注點比較有特色,更加關注解析性能,聲稱:“Application integration of XML data cannot get any simpler or any faster: instead of dealing with sophisticated api (such as DOM or SAX), use a convenient data structure, generated to suit your specific purpose, in the language of your choice. ”。

針對特殊需求使用更加方便的數據結構以提高性能。

五、LibXML解析器

官方地址:http://xmlsoft.org/

LibXML本來是為Gnome項目開發(C開發),之後被廣泛使用,功能非常強大,幾乎適合於常見的所有操作系統下編譯和開發使用。libxml++(地址:http://libxmlplusplus.sourceforge.net/)是對libxml XML解析器的C++封裝版本。此外還有各種語言封裝包,參加官方鏈接。

補充:

除了上述XML解析庫外,還有一些XML解析器(參考:http://www.garshol.priv.no/xmltools/platform/cpp.html),比如Berkely DBXML(BDB)等,有興趣的讀者可自行Google搜索。

盡管XML解析器有很多種,而且功能差異很大,甚至是支持跨平台、多語言,但是對於你的應用而言,盡量選擇一種相對熟悉、功能夠用的即可,沒必要去追求龐雜的解析器,我們只需關注:功能夠用、相對穩定、適合擴展這三個功能即可。一旦有問題,修正和擴展都要更為容易。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved