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.

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>
I could easy read that with no problems. I then wanted to write it to a new file.
But the problem is that it keeps overwriting previous xml_nodes.

For example,

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>
This is the code that creates that xml file,

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;
    
    };
My question his how to I stop it from overwriting previous xml_nodes?
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!