我有一个QXmlStreamReader变量,我希望它遍历我的xml文件- QFile,并通过函数readNextStartElement()读取所有开始元素。但是它给了我每个开始标记两次。
这是我的代码:
QXmlStreamReader* xmlReader = new QXmlStreamReader(orFile);
xmlReader->readNextStartElement();
std::string tagName = (orXmlReader->name()).toLocal8Bit().constData();
cout << tagName;
xmlReader->readNextStartElement();
tagName = (orXmlReader->name()).toLocal8Bit().constData();
cout << tagName;有人能帮我找到解决办法吗?我还有另一个函数可以正常读取开始元素吗?
发布于 2015-12-17 17:50:09
这个API确实令人困惑,对于这种特殊情况,文档没有多大帮助。
我认为有两件事值得一提:
false而不更改位置。只有下一次调用才会移动位置(并在好的情况下返回true )。因此,在我们的示例中,您可以实际读取标记的内容,或者检查readNextStartElement()的返回值,并在它返回false时忽略它。不过,这可能会忽略一些有效的错误情况。
https://stackoverflow.com/questions/34334548
复制相似问题