Hello,
I just started using rapidxml. I 1st create an xml file to read from. Worked so fast an easy.
This is what I manual crated.
I could easy read that with no problems. I then wanted to write it to a new file.Code:<?xml version="1.0" encoding="utf-8"?> <GPS> <Path> <Point X="-3684.136" Y="3566.282" Z="285.2893" /> <Point X="-3681.816" Y="3540.431" Z="283.3658" /> <Point X="-3687.079" Y="3515.315" Z="282.6284" /> </Path> </GPS>
But the problem is that it keeps overwriting previous xml_nodes.
For example,
This is the code that creates that xml file,Code:<?xml version="1.0" encoding="UTF-8"?> <GPS> <Path> <Point X="-3687.08" Y="3515.31" Z="282.628"/> <Point X="-3687.08" Y="3515.31" Z="282.628"/> <Point X="-3687.08" Y="3515.31" Z="282.628"/> </Path> </GPS>
My question his how to I stop it from overwriting previous xml_nodes?Code:int Write(pathStruct *toStore) { xml_document<> doc; xml_node<>* decl = doc.allocate_node(node_declaration); decl->append_attribute(doc.allocate_attribute("version", "1.0")); decl->append_attribute(doc.allocate_attribute("encoding", "UTF-8")); doc.append_node(decl); xml_node<> *GPS = doc.allocate_node(node_element, "GPS"); doc.append_node(GPS); cout << "Saving GrindPath " << endl; xml_node<> *Path = doc.allocate_node(node_element, "Path"); GPS->append_node(Path); for(int i = 0;i<3;i++) //Temp Static { xml_node<> *Point = doc.allocate_node(node_element, "Point"); Path->append_node(Point); char x[10]; FloatToCharA(toStore->X[i], x); Point->append_attribute(doc.allocate_attribute("X", x)); char y[10]; FloatToCharA(toStore->Y[i], y); Point->append_attribute(doc.allocate_attribute("Y", y)); char z[10]; FloatToCharA(toStore->Z[i], z); Point->append_attribute(doc.allocate_attribute("Z", z)); //GrindPath->append_node(Point); //doc.first_node()->append_node(GrindPath); //Point = GrindPath->next_sibling(); cout << "x:" << toStore->X[i] << " y:" << toStore->Y[i] << " z:" << toStore->Z[i] << endl; } cout << "Done! " << endl; std::ofstream myfile; myfile.open ("./toStore.xml"); myfile << doc; return 0; };
I have attempted many thing but every time its still overwrites previous xml_nodes.
I know it must be simple or I am missing the big picture.
Thank you for your help and time!


Reply With Quote
