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

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

1、Xerces XML解析器

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

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

Xerces-C++忠實於XML 1.0建議和相關標準。數據結構

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

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

2、TinyXML解析器

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

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

http://www.grinninglizard.com/tinyxmldocs/index.html操作系統

3、squashXML解析器

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

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

4、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. 」。

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

5、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解析器有不少種,並且功能差別很大,甚至是支持跨平臺、多語言,可是對於你的應用而言,儘可能選擇一種相對熟悉、功可以用的便可,不必去追求龐雜的解析器,咱們只需關注:功可以用、相對穩定、適合擴展這三個功能便可。一旦有問題,修正和擴展都要更爲容易。


原文地址:http://www.metsky.com/archives/578.html

相關文章
相關標籤/搜索