Rapidxmlを使用して、ノードのセットをループしたいと思っています。これを行うための最良の方法であることがわかったものを使用しています(信頼できるスタックオーバーフローから、ドキュメントには反復の例がないようです)。
while (curNode->next_sibling() !=NULL ) {
string shiftLength = curNode->first_attribute("shiftLength")->value();
cout << "Shift Length " << "\t" << shiftLength << endl;
curNode = curNode->next_sibling();
}
残念ながら、私のOSX 10.6では、これは最後の兄弟ノードを除外しています-ループの最後の反復で、next_siblingが2回呼び出されるためだと思います。ループの後に書くと、この最後のノードに到達できます。
cout << " LAST IS: " << curNode->first_attribute("shiftLength")->value();
...しかし、それは危険であり、プログラムはその時点で終了します。
最初の質問:これは私のセットアップ(OSX 10.6)のユニークなものでしょうか、それとも間違ってコーディングしたのでしょうか?
2番目の質問:rapidxmlを使用して未知の数のXMLノードを反復処理する正しい方法であると彼らが信じている例を誰かが持っていますか?
みんなありがとう
ピート