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

How to skip XML file reading to end of current parent element using 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-1Info-1 等于某个特定值,例如: SKIP,那么我想跳过整个Parent-1元素,读取下一个父元素Parent-2.

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

有什么办法可以跳过整个父元素吗?非常感谢任何帮助。

提前致谢。

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

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