作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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;
有人可以帮我找到解决方案吗?我有另一个函数可以正常读取开始元素吗?
最佳答案
那个 API 确实令人困惑,而且 documentation对于这种特殊情况没有太大帮助。
我认为有两点值得一提:
false
而不改变位置。只有下一次调用才会移动位置(在好的情况下返回 true
)。因此在我们的示例中,您可以实际读取标签的内容,或者检查 readNextStartElement() 的返回值并在返回 false
时忽略它。不过,这可能会忽略一些有效的错误情况。
关于c++ - QXmlStreamReader.readNextStartElement() 两次读取起始元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334548/
我有一个 QXmlStreamReader 变量,我希望它遍历我的 xml 文件 - QFile,并通过函数 readNextStartElement() 读取所有开始元素。但它给了我每个开始标记两次
我必须实现一个 xml 解析器,它在运行时构造 Qt 对象并将其放置在小部件中。我写了一个基于 this 的解析器.一个模块代表 QWidget,它将包含 QPushButton 和 QCheckBo
我是一名优秀的程序员,十分优秀!