首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

高速删除不要的节点

2013-01-22 
快速删除不要的节点我在做一个删除xml中不要的节点,这个xml就两层。books book nameaaa time coun

快速删除不要的节点
我在做一个删除xml中不要的节点,这个xml就两层。
<books>
 <book name='aaa' time='' country='' .../>
 <book name='aaa' time='' country='' .../>
</books>
都是book节点。我想删除其中的一些阶段,由人为在listwidget中选择。

我现在的想法是:将所有的节点读入一个list中,待用户选择完listwidget后,在根据用户选择的书名去将要移除的书给删除掉(在list中移除掉被选择的书)。

我有以下三个疑问需要大家帮忙想想办法。谢谢。
1. 我这个list会很大,用QLinkList会很好方便删除元素?其实这有两个操作,找到元素,然后删除。我看QList和QLinkList在找元素应该差不多,但是删除肯定QLinkList效率要好。
2. Qt的现有对xml文件操作的api中好像没有删除某个节点的api吧?另外,就算有,我觉得用qt本身的api来删除的话还不如自己将所有节点读入内存,查找,删除,然后在重新写入文件中效率高?
3. 若是这个书节点很大,可能上10w-100w级别的时候,有没有其他更好的方法呢?或者其他建议。
谢谢
[解决办法]
使用QDomNode
[解决办法]
要是文件格式不变,只是处理这么一种格式的文件,用文本的查找替换更快。
第二个方案不错。不过可以考虑一次读进来一部分,不是全部文件,还能提高速度。
[解决办法]
使用模型视图 , 删除xml节点后 更新.

热点排行