如何使用QXMLStreamReader跳过XML文件读取到当前父元素的结尾?

时间:2016-11-04 10:11:19

标签: xml qt qxmlstreamreader

假设我有一个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

有没有办法跳过整个父元素?非常感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果两次调用skipCurrentElement()不起作用,您应该可以轻松跳过一个简单的循环

while (!isEndElement() || name() != "Parent-1") {
    readNext();
}