2016-11-04 1 views
0

は、次のように私は、XMLファイルのデータを持っていると仮定します。私は最初、私は開始要素親-1を読んで、最初からファイルを読み込み、その最初の子お子様1QXMLStreamReaderを使用して現在の親要素の終わりまで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> 

およびそのテキスト情報-1

親-1 /お子様1情報-1は、いくつかの特定の値などに等しい場合:はその後、私は全体親-1要素を、スキップして読みたい、スキップ次の親要素親2親-1年代私の場合には、次の開始要素までお子様2を読みます私の知る限りでは

QXMLStreamReaderだけskipCurrentElementを(提供)readNextStartElement()

親要素全体をスキップする方法はありますか?どんな助けも大歓迎です。

ありがとうございます。

答えて

0

二回skipCurrentElement()の呼び出しが動作しない場合は、簡単にそれを考慮に木の深さを取ることはありませんので、これは十分な答えではない単純なループ

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

をスキップすることができるはずです。ここでは、単純な反例だ: '情報-1' – MrEricSir

+0

問題の例では、構造物のようなものを持っていない、またそこには、いずれかのそのためのテキスト内の任意の表示、 –

+0

ありがとう@KevinKrammerです。幸いにも私のXMLファイルにはそのような入れ子構造のタグ構造はありません。小さな質問:QXMLStreamReaderを使用して、_readNext()_を使用してすべての行をループで読み取らずにファイルを終了する方法はありますか? – Yarram

関連する問題