如何在开始时设置 QXmlStreamReader?

Posted

技术标签:

【中文标题】如何在开始时设置 QXmlStreamReader?【英文标题】:How to set QXmlStreamReader atStart? 【发布时间】:2016-11-21 11:35:10 【问题描述】:

指针到达末尾后如何在开头设置 QXmlStreamReader。

 QXmlStreamReader xml(&data);
int i=0;
while(!xml.atEnd())
    if (xml.isStartElement()) 
     if (xml.name() == "sample") 
    i++;
    
    xml.readNext();

//这里我想在开始时重新设置xml。

【问题讨论】:

【参考方案1】:

尝试重置输入源

data.seek(0); // to make QFile object pointing to begining
xml.setDevice(xml.device());

Documentation for setDevice() 说: 将当前设备设置为设备。设置设备会将流重置为其初始状态。

【讨论】:

显示错误:“setDevice”未在此范围内声明,为什么? @t.m. 我没有测试它,我现在无法测试。有机会我会更新我的答案 什么? @t.m. 你不应该只说setDevice,它是QXmlReader的一个功能。你应该说 xml.setDevice(xml.device()); 仍然没有测试

以上是关于如何在开始时设置 QXmlStreamReader?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能使用 Qt 中的 QXmlStreamReader 解析 XML 文件?

将 QXmlStreamReader 实例传递给类

QXmlStreamReader-解析xml文件

QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写

22.QT-QXmlStreamReader解析,QXmlStreamWriter写入

QT开发(四十四)——流方法解析XML