如何使用 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-1 的 Info-1 等于某个特定值,例如: SKIP,那么我想跳过整个Parent-1元素,读取下一个父元素Parent-2.
据我所知,QXMLStreamReader只提供skipCurrentElement()和readNextStartElement (),它将一直读到下一个开始元素,在我的例子中是 Parent-1 的 Child-2.
有什么办法可以跳过整个父元素吗?非常感谢任何帮助。
提前致谢。
如果调用 skipCurrentElement()
两次不起作用,您应该可以通过简单的循环轻松跳过
while (!isEndElement() || name() != "Parent-1") {
readNext();
}
假设我有一个 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 (),它将一直读到下一个开始元素,在我的例子中是 Parent-1 的 Child-2.
有什么办法可以跳过整个父元素吗?非常感谢任何帮助。
提前致谢。
如果调用 skipCurrentElement()
两次不起作用,您应该可以通过简单的循环轻松跳过
while (!isEndElement() || name() != "Parent-1") {
readNext();
}