2011-04-16 51 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的:)的流行子集