假设我有一个XML文件的数据如下:
<Parent-1>
<Child-1>Info-1</Child-1>
<Child-2>Info-2</Child-2>
<Child-3>Info-3</Child-3>
</Parent-1>
<Parent-2>
<Child-1>Info-1</Child-1>
<Child-2>Info-2</Child-2>
<Child-3>Info-3</Child-3>
</Parent-2>
<Parent-3>
<Child-1>Info-1</Child-1>
<Child-2>Info-2</Child-2>
<Child-3>Info-3</Child-3>
</Parent-3>
当我从头开始阅读文件时,首先我读取了开始元素 Parent-1 ,然后是第一个子 Child-1 及其文本 INFO-1
如果 Parent-1 / Child-1 Info-1 等于某个特定值,例如: SKIP ,然后我想跳过整个 Parent-1 元素,并阅读下一个父元素 Parent-2 。
据我所知, QXMLStreamReader 仅提供 skipCurrentElement()和 readNextStartElement(),它将一直读到下一个start元素,在我的情况下 Parent-1 &#39; Child-2 。
有没有办法跳过整个父元素?非常感谢任何帮助。
提前致谢。
答案 0 :(得分:0)
如果两次调用skipCurrentElement()
不起作用,您应该可以轻松跳过一个简单的循环
while (!isEndElement() || name() != "Parent-1") {
readNext();
}