Tre*_*ith 3 c++ xml user-interface qt
在Qt中,有许多不同的方法可以使用XML.为了保持这个简单,我只想查看QXml*类和QDom*类.
我试图找出使用哪一个,但他们都看起来有类似的功能.
QXml和QDom之间的主要区别是什么?
假设的例子:是否有人将整个xml文件读入内存,使其在启动时变慢但在启动后更快?
您应该使用哪种方法来使用一种方法而不是另一种方法?你为什么要用另一个呢?
假设的例子:假设您正在进行"一次通过"而非"多次通过"......
简而言之,QXml*类实现了SAX(Simple API for XML)XML解析器,同时QDom*实现了DOM(文档对象模型)XML解析器.
主要区别在于SAX是一个顺序访问解析器,因此它在读取文档时对其进行解析,并使得第一块解析数据几乎立即可用.DOM需要将整个文档加载到内存中以进行解析,但在代码开销方面可能更容易处理(对于SAX,您必须实现XML处理程序类).通常,SAX更轻便,更快.
关于SAX和DOM的比较有很多在线阅读:
http://developerlife.com/tutorials/?p=28
而这里的一个不错的文件比较各种跨平台的XML解析器(包括QXml*和QDom*).您最好的选择取决于您的用例,如果您使用的是大型XML文档,则您更喜欢SAX.对于微小的XML,您最好使用DOM,因为只需几行代码就可以从文件中获取所需的数据.