Uso de rapidxml Estoy queriendo recorrer un conjunto de nodos, y estoy usando lo que encontré para ser la mejor manera de hacerlo (desde el stackoverflow de confianza, el documento no parece tener un ejemplo de iteración):rapidxml: ¿cómo iterar a través de los nodos? Deja fuera a último hermano
while (curNode->next_sibling() !=NULL) {
string shiftLength = curNode->first_attribute("shiftLength")->value();
cout << "Shift Length " << "\t" << shiftLength << endl;
curNode = curNode->next_sibling();
}
por desgracia, en mi OSX 10.6 esto es dejando fuera el último nodo hermano - supongo que porque en la última iteración del bucle, next_sibling se llama dos veces. Puedo conseguir en este último nodo si escribo, después del bucle:
cout << " LAST IS: " << curNode->first_attribute("shiftLength")->value();
... pero eso es poco fiable, y el programa se cierra en ese punto.
Primera pregunta: ¿Podría ser esto un fallo único de mi configuración (OSX 10.6) o he codificado mal?
Segunda pregunta: ¿Alguien tiene un ejemplo de lo que creen que es la forma correcta de iterar a través de un número desconocido de nodos XML utilizando rapidxml?
Gracias chicos
Pete
Piense en bucles en términos de invariantes. El suyo se ejecuta para todos los nodos con los próximos hermanos que no sean NULL. Esto no es cierto para el último nodo. –