• 3780阅读
  • 4回复

[提问]XML多次读取问题 [复制链接]

上一主题 下一主题
离线gerryleeke
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-13
关键词: xml
我使用QXmlStreamReader来读取xml文件,我需要进行多次读取。当我第二次读取时出错了,错误为:Premature end of file。应该是第一次读完后文件流就到了文件的末尾。这个问题该如何解决?

我需要多次读取,是因为我要先判断xml里是否有某个属性值,有则对xml解析,没有就不解析了。
离线gerryleeke

只看该作者 1楼 发表于: 2012-04-16
没人会吗?我主要是不知道如何关闭xml文件流
离线roywillow

只看该作者 2楼 发表于: 2012-04-16
那个reader应该是跟一个QFile之类的QIODevice关联上了吧
调用QIODevice的seek()试试?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线gerryleeke

只看该作者 3楼 发表于: 2012-04-16
好吧,我解决了。
先file.close(),再file.open(...).
我也真傻!file是关闭了,却没再次打开。
离线roywillow

只看该作者 4楼 发表于: 2012-04-16
回 3楼(gerryleeke) 的帖子
……好吧先关掉再打开确实应该可以
不过我感觉只要seek(0)一下也就差不多了吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个