2011-01-13 59 views
7

我知道至少三個輕量級C++ XML解析器:RapidXML,TinyXMLPugiXML。但是,三者都使用基於DOM的接口(即,它們構建自己的XML文檔的內存中表示,然後提供一個接口來遍歷和操作它)。對於我必須處理的大多數情況,我更喜歡SAX接口(解析器只是吐出一系列事件,比如標籤的開始,而應用程序代碼根據這些事件負責做任何事情) 。輕量級C++ SAX XML解析器

任何人都可以推薦具有SAX接口的輕量級C++ XML庫嗎?編輯:我還應該注意微軟XmlLite庫,其中確實使用SAX接口(實際上,它實際上是一個「拉」接口,甚至可能更好)。不幸的是,它現在排除了我,因爲據我所知它只是封閉的源代碼和Windows(如果我錯了,請糾正我)。

+0

https://github.com/ igagis/mikroxml – igagis 2017-08-29 15:41:48

回答

5

當我需要解析XML時,我已經使用了expat。這是非常輕量級的(好吧,它曾經是,因爲我已經完成了XML工作,這是一段時間)並完成這項工作。

+0

我必須承認,我沒有給予外派應有的注意。你用它與C++包裝?如果是這樣,哪一個? – 2011-01-13 19:52:38

0

PugiXML和RapidXML沒有DOM符合接口..這些API在功能和一致性方面受到嚴重限制。您可能想要研究明顯比DOM或SAX/Pull更高級的VTD-XML

5

您可以嘗試http://die-xml.googlecode.com/。這似乎是非常小的,易於使用的

這是最近做的C++ 0x XML SAX解析器開源和筆者願意反饋

它解析輸入流和兼容回調生成事件的std ::功能

堆棧該機採用有限自動機作爲後端和一些事件(開始標籤和文本節點),以儘量減少緩衝使用迭代器,使得它非常輕便