0

假设我有一个 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-1Info-1等于某个特定值,例如:SKIP,那么我想跳过整个Parent-1元素,并读取下一个父元素Parent-2

据我所知,QXMLStreamReader仅提供skipCurrentElement()readNextStartElement(),它们将读取到下一个开始元素,在我的例子中是Parent-1Child-2

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

提前致谢。

4

1 回答 1

0

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

while (!isEndElement() || name() != "Parent-1") {
    readNext();
}
于 2016-11-05T09:58:37.767 回答