当前位置: 代码迷 >> QT开发 >> 有用QT做个XML解析的吗?问个有关问题
  详细解决方案

有用QT做个XML解析的吗?问个有关问题

热度:85   发布时间:2016-04-25 04:51:41.0
有用QT做个XML解析的吗?问个问题
项目要用到QT解析xml文件来读取各个设备的相关信息
现在解析100个设备,存在一个大概650K的xml文件中,需要耗时12~13秒时间
老大的意思,解析这么大一个文件应控制到3秒之内
我用的QXmlStreamReader类做的解析
参考的是qt4 demo中的例子
用while循环从头到尾遍历一遍xml文件

请问有用QT做过xml文件解析的XD,我这样的解析速度正常吗?
如果慢了,有什么其他的方法可以改善解析的效率吗?

------解决方案--------------------
XML的解析主要有两大模型:SAX和DOM。其中SAX是基于事件的,其基本工作流程是分析XML文档,当发现了一个新的元素时,产生一个对应事件,并调用相应的用户处理函数。这种方式占用内存少,速度快,但用户程序相应得会比较复杂。

而DOM(文档对象模型),则是在分析时,一次性的将整个XML文档进行分析,并在内存中形成对应的树结构,同时,向用户提供一系列的接口来访问和编辑该树结构。这种方式占用内存大,速度往往慢于SAX,但可以给用户提供一个面向对象的访问接口,对用户更为友好。

请参考SAX Bookmars该例。
  相关解决方案