Using rapidxml I'm wanting to loop through a set of nodes, and am using what I found to be the best way to do this (from trusty stackoverflow, the doc doesn't appear to have an example of iteration):
while (curNode->next_sibling() !=NULL ) {
string shiftLength = curNode->first_attribute("shiftLength")->value();
cout << "Shift Length " << "\t" << shiftLength << endl;
curNode = curNode->next_sibling();
}
Unfortunately, on my OSX 10.6 this is leaving out the last sibling node - I guess because in the last iteration of the loop, next_sibling is called twice. I can get at this last node if I write, after the loop:
cout << " LAST IS: " << curNode->first_attribute("shiftLength")->value();
...but that's dodgy, and the program quits at that point.
First question: Could this be a unique foible of my setup (OSX 10.6) or have I coded wrong?
Second question: Does anyone have an example of what they believe is the correct way to iterate through an unknown number of XML nodes using rapidxml?
Thanks guys
Pete