2011-04-16 25 views
5

我試圖找到與使用少量的內存,或者內存中,而一定量的XPath支持XML解析器解析,我試圖解析大的XML文件,如近1千兆,我一直在閱讀xqilla,並且似乎是使用非常大量的內存,因爲它是基於DOM,糾正我,如果我錯了..反正 ,對於這樣的XML解析器的C++ & Linux的任何想法?XML恆內存使用

+0

你最好還要添加C++標籤 – 2011-04-16 09:04:20

回答

1

如果你能處理基本上的單程XML,SAX解析器將是一個不錯的主意。 Apache Xerces C++怎麼樣?

+0

SAX不支持xpath,據我所知.. – shd 2011-04-16 09:50:16

+0

對不起,我錯過了。但是,如果你把你的XPath的要求,編寫自己的代碼來選擇您所需要的數據,你應該能夠使用SAX。 – 2011-04-16 09:53:00

+0

@ user687543:爲什麼不能SAX解析器支持的XPath? – 2011-04-16 15:49:58

0

你可能看

pugixml能夠提供非常快速,方便記憶,高效的XML文檔處理。然而,由於pugixml有一個DOM解析器,它無法處理,不適合在內存中的XML文檔;解析器也是非驗證的,所以如果你需要DTD/Schema驗證,庫不適合你

但是,它明顯不是一個流解析器。我知道流和xpath通常不會很好(由於潛在的隨機訪問要求)。 Allthough,在.NET中ever-famous XPathReader似乎橋接XPath的:)的流行子集